我正在研究反应,我有一个这样的例子
//index.js
const store = createStore(reducer)
render(
<Provider store={store}>
<AddTodo />
</Provider>,
document.getElementById('root')
)
//Apptodo.js
import React from 'react'
import { connect } from 'react-redux'
import { addTodo } from '../actions'
let AddTodo = ({ dispatch }) => {
let input
return (
<div>
<form onSubmit={e => {
e.preventDefault()
if (!input.value.trim()) {
return
}
dispatch(addTodo(input.value))
input.value = ''
}}>
.......
Run Code Online (Sandbox Code Playgroud)
为什么不能得到this.pros.store,只需调用dispatch()函数?
编辑:它是如何提取dispatch的this.pros.不是对象this.pros.store吗?在这种情况下,为什么我们不提取store?
谢谢.
我有代码只有在导入React之后才能工作,但我没有在任何地方使用React而是使用reactDom
import ReactDOM from 'react-dom'
import React, {Component} from 'react'
class App extends Component {
render () {
return (
<div>comp </div>
)
}
}
//ReactDOM.render(<App/>, document.getElementById('root'))
ReactDOM.render(<div>sv</div>, document.getElementById('root'))
Run Code Online (Sandbox Code Playgroud)
为什么要求导入React?
对于VSCode中支持的文件,我们得到一个选项(当您右键单击文件编辑器时)Format Document (ALT+SHIFT+F).
但不幸的是,对于Groovy,此选项不可用.而根据VSCode社区,有没有计划来实现此功能.
是否有可用的替代解决方案,专门用于VSCode?
Alt+Left 导航回最后一个光标位置,如果最后一个光标位置在不同的文件中,则导航到该文件。
但是,我只想导航到与当前聚焦的文件相关的最后一个光标位置。当我有 2 个拆分文件编辑器并希望彼此互斥地导航回时,这非常有用。
是否可以?
我希望你理解这个问题,如果需要进一步解释,请告诉我。
我试图通过TextMate语言语法使用Visual Studio Code的主题设置创建自定义语法样式。
具体来说,我想将所有JavaScript的保留关键字都斜体化。通过以下设置,我已经设法达到了98%的性能(剩余的注释包括在内)。
不幸的是,我找不到一些规则:
storage包括脂肪箭头符号,这一点我不希望包括。我想更具体的,如下面的设置可见,但无法找到更具体的设置constructor和const。另外,这"storage.type.function"是我能找到的最明确的功能设置(需要function关键字,但其中包含粗箭头)。keyword包括字符,如逻辑运算符等,同样,我不希望有。keyword.operator是必要的文本运营商(例如in,instanceof),但是包括字符运算符。eval(严格禁止的)或package(未使用的将来关键字)的规则。有任何想法吗?
const settings = {
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": [
// TODO: missing keywords: package, eval
// all comment types
"comment",
// true, false, null
"constant.language",
// import, from, export, default, return, if, for, break, continue, try, catch, finally,
// throw, default, yield, await …Run Code Online (Sandbox Code Playgroud) 我安装了更漂亮的扩展,我的 json 对象定义现在在格式化后断行。我怎样才能避免它?我想保留内联对象声明。
例如,在格式化之前:
"properties": {
"d0": {"type":"boolean","default":false},
"d1": {"type":"boolean","default":false},
"d2": {"type":"boolean","default":false},
"d3": {"type":"boolean","default":false},
"d4": {"type":"boolean","default":false},
"d5": {"type":"boolean","default":false},
"d6": {"type":"boolean","default":false},
"d7": {"type":"boolean","default":false},
"d8": {"type":"boolean","default":false},
"d9": {"type":"boolean","default":false}
}
Run Code Online (Sandbox Code Playgroud)
格式化后:
"properties": {
"d0": {
"type": "boolean",
"default": false
},
"d1": {
"type": "boolean",
"default": false
},
"d2": {
"type": "boolean",
"default": false
},
"d3": {
"type": "boolean",
"default": false
},
"d4": {
"type": "boolean",
"default": false
},
"d5": {
"type": "boolean",
"default": false
},
"d6": {
"type": "boolean",
"default": false
},
"d7": …Run Code Online (Sandbox Code Playgroud) 我创建了一个使用Webpack和Babel进行转换/捆绑的NPM包.
在我package.json,我有主要的"main": "build/index.js".在我的Webpack配置中,我有条目设置entry: { app: './src/index.js' }.我的输入文件如下所示.
安装软件包时一切正常.但是,使用此设置,每个帮助程序都会公开两个导入路径:
这对于支持自动导入的编辑器来说是一个问题,因为它们有时会自动导入'my-package/build/utils/helper1'而不是首选路径'my-package'.
那么,有两个问题:
条目文件:
import helper1 from './utils/helper1';
import helper2 from './utils/helper2';
export {
helper1,
helper2,
};
const myPackage = {
helper1,
helper2,
};
export default myPackage;
Run Code Online (Sandbox Code Playgroud) 显然,Safari 在发送 POST 数据时对 Unicode 进行了规范化,而所有其他主要浏览器只发送它们所提供的内容。
规范化似乎发生在数据通过网络发送之前,并且对数据使用normalize()不起作用(Safari 强制执行 NFC,无论它提供什么)。
当请求带有重音字符的文件名时,这会成为一个问题,它在 NFC 和 NFD 格式中具有不同的代码点。解释基本上归结为Unicode 等价中的“组合字符”与“预组合字符” )。
话虽如此,鉴于 API 不在后端进行自己的规范化,并且需要一个字符串数组(文件名),是否可以在使用 Safari 时在前端发送正确的文件名?
Unicode 规范化问题的一个例子:
const str = 'Rosé'
const nfc = str.normalize()
const nfd = str.normalize('NFD')
console.log(nfc === nfd) // false
console.log(nfc.codePointAt(3)) // 233
console.log(nfd.codePointAt(3)) // 101
console.log(nfc.codePointAt(4)) // undefined
console.log(nfd.codePointAt(4)) // 769
Run Code Online (Sandbox Code Playgroud)
一个最小的、可重现的例子:
请注意 Chrome 和 Safari 之间的控制台日志差异。
const isCorrectForm = (path, form) => path === path.normalize(`NF${form}`)
const fetchData = async() => {
const sourcePathC = …Run Code Online (Sandbox Code Playgroud)究竟什么是Javascript中有效的属性名称?各种财产分配方法有何不同?属性名称如何影响属性访问?
我原来的问题(见下文)的答案有助于澄清一些事情,但也开辟了一堆新的蠕虫.既然我已经有机会对JavaScript更加熟悉了,我相信我已经能够解决很多问题了.
由于我很难将这些信息合并到一个解释中,我认为扩展我的原始问题可能会有所帮助,并尝试回答它.
最初,MDN JavaScript指南(对象文字)存在一些混淆.具体来说,我想知道为什么他们声称如果属性名称不是有效的JavaScript标识符,那么它必须用引号括起来.然而,他们提供了示例代码,表明可以使用数字7 - 没有引号 - 作为属性名称.
事实证明,指南只是忽略了一个重要部分,Pointy对其进行了更新(粗体更改):
如果属性名称不是有效的JavaScript标识符或数字,则必须用引号括起来.
我还想知道为什么允许属性名称偏离适用于标识符的"可能不以数字开头"规则.这个问题实际上揭示了我对属性名称的完全误解,并且是导致我做更多研究的原因.
我试图让一个网站强制使用 HTTPS(从 HTTP 重定向)。我们已经通过 AWS Elastic Beanstalk 设置了 HTTPS。问题是,目前,HTTP 和 HTTPS 都可以使用。
在阅读了几篇文章后,包括这篇文章,下面的代码就是我想出的。不幸的是,这不起作用。
我错过了什么?
import express from 'express';
import { join } from 'path';
const app = express();
const buildPath = join(`${__dirname}/../build`);
const enforceHTTPS = (req, res, next) => {
if (req.headers['x-forwarded-proto'] === 'https') return next();
else return res.redirect(301, join(`https://${req.hostname}${req.url}`));
};
app.use(express.static(buildPath));
app.use(enforceHTTPS);
app.get('*', (req, res) => res.sendFile(`${buildPath}/index.html`));
app.listen(process.env.PORT || 3000, () => console.log('Server running on port 3000!'));
export default app;
Run Code Online (Sandbox Code Playgroud) 我刚开始使用 Visual Studio Code,并且一直是 Atom 的用户。我注意到的一件事,特别是对于 PHP 的自动完成,我必须滚动选项列表才能找到自动填充代码的选项。我想通过点击选项卡来获得自动完成。
比如说,我想发表一个if声明。在 Atom 中,我只需输入“if”,然后点击 Tab 键,它就会用我需要的所有内容填充代码。在 VS Code 中,如果我输入“if”后跟 Tab,什么都不会发生。我必须先滚动到特定选项。有没有办法通过输入关键字然后按 Tab 来获得自动完成?
这个问题也适用于elseif, else, while。
我正在尝试创建一个片段,该片段根据文件路径创建类名。如果文件名为index.js,我希望类名采用文件夹名称。否则,使用文件名。
index.js如果文件被命名(它正确插入文件夹名称),我有一个当前正在工作的转换(如下所示) 。
我将如何扩展这一点(假设有可能)也适用于第二种情况?
我确实从VSCode 文档中注意到,您可以使用一些基本的 if/else 格式,它们仅在捕获组存在时插入给定的文本。我已经能够让那些人通过一些简单的例子来工作。但不确定这些是否可以以某种方式用来完成我想做的事情。
当前片段:
{
"mySnippet": {
"prefix": "cls",
"body": [
"class ${TM_FILEPATH/[\\/\\w$]+\\/(?!index)|\\/index.js//g} {}",
"export default ${TM_FILEPATH/[\\/\\w$]+\\/(?!index)|\\/index.js//g};"
]
},
}
Run Code Online (Sandbox Code Playgroud) javascript regex code-snippets visual-studio-code vscode-snippets
javascript ×7
node.js ×2
reactjs ×2
accessor ×1
ecmascript-6 ×1
es6-modules ×1
express ×1
groovy ×1
https ×1
identifier ×1
npm ×1
object ×1
package.json ×1
php ×1
post ×1
prettier ×1
properties ×1
react-jsx ×1
react-redux ×1
regex ×1
rest ×1
safari ×1
textmate ×1
unicode ×1
webpack ×1
windows ×1