我目前正在使用注册表单,以下是我的代码段:
const Signup = () => {
const [username, setUsername] = useState('')
const [email, setEmail] = useState('')
const [password, setPassword] = useState('')
const [passwordConfirmation, setPasswordConfirmation] = useState('')
const clearState = () => {
setUsername('')
setEmail('')
setPassword('')
setPasswordConfirmation('')
}
const handleSubmit = signupUser => e => {
e.preventDefault()
signupUser().then(data => {
console.log(data)
clearState() // <-----------
})
}
return <JSX />
}
export default Signup
Run Code Online (Sandbox Code Playgroud)
每个状态都用于表格的受控输入。
本质上,我想做的是在用户成功注册后,希望状态恢复为初始状态,并清除字段。
手动将每个状态设置回空字符串是非常必要的,clearState因为我想知道React是否附带有方法或函数来将状态重置为初始值?
我想知道如何使用useState带有酶的钩子测试功能组件的状态变化。通常情况下,测试是类似的,expect(wrapper.state()).toEqual(expectedState)但是我得到了错误:
ReactWrapper::state() can only be called on class components
Run Code Online (Sandbox Code Playgroud)
我知道Hooks仍处于alpha阶段,并且诸如此类的东西shallow仍然无法正常工作,但我想知道是否有解决办法?
Recompose 库中的 pure() 和 React.PureComponent 有什么区别?我猜他们基本上是在解决同样的问题。有人可以澄清一下吗?
99% 的情况下,我希望 VSCode 在使用 Prettier 保存时自动格式化我的文件。对于那 1% 的时间,有没有办法以比进入设置然后手动打开和关闭它更快的方式将其关闭?
我试过寻找任何键盘绑定,但我找到的唯一一个是 prettier.open-output
我使用Create-React-Native-App启动了一个新项目,然后从项目中退出.我按照React-Native文档的说明在Android Studio上打开了一个虚拟设备并运行yarn android以构建应用程序.然后我收到此错误消息:
我目前正在使用Node 8.11.1,命令在我的终端上正常工作.我用NVM安装了它.
在packager.sh文件中,这是第11行:
node "./local-cli/cli.js" start "$@"
这是我.bashrc和.bash_profile文件:
的.bashrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin"
Run Code Online (Sandbox Code Playgroud)
.bash_profile中
[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile …Run Code Online (Sandbox Code Playgroud) 这是我的代码:
'use strict'
import React from 'react'
import { connect } from 'react-redux'
import { Panel, Col, Row, Well, Button } from 'react-bootstrap'
const Cart = ({ cart }) => {
const cartItemsList = cart.map(cartArr => (
<Panel key={cartArr.id}>
<Row>
<Col xs={12} sm={4}>
<h6>{cartArr.title}</h6>
</Col>
</Row>
</Panel>
));
return (
{ cart[0] &&
(<Panel header="Cart" bsStyle="primary">
{cartItemsList}
</Panel>)
}
{ !cart[0] &&
(<div></div>)
}
// {
// cart[0] ? (<Panel header="cart" bsStyle="primary">{cartItemsList}</Panel>) : (<div></div>);
// }
)
}
const mapStateToProps …Run Code Online (Sandbox Code Playgroud) 我刚刚从 Atom 切换到 VSCode。
当我使用 Atom 并在.js文件中输入 JSX 时,我可以输入任何内容并按下tab它,它会将我的选项卡转换为自定义组件。例如,asdf然后tab会给<asdf></asdf>.
现在我有 VSCode 和 Emmet,但这仅在某些时候有效。我已经尝试过 Emmet,除了基本的自定义组件外,一切正常
所有 HTML 标签都按预期工作。即div.blue&tab返回<div className="blue"></div>
嵌套工作asdf>jkl和tab返回
<asdf>
<jkl></jkl>
</asdf>
Run Code Online (Sandbox Code Playgroud)
出于某种原因,添加冒号会触发它。as:df&tab返回<as:df></as:df>但asdf&tab不返回<asdf></asdf>。我只是让我的光标向前移动。
我不确定 Intellisense 或 Snippets 是否以某种方式干扰。我安装的相关扩展是 JavaScript 和 TypeScript Intellisense v0.0.7、Javascript Snippet Pack v0.1.5 和 simple React Snippets 1.2.2。
这是我的设置:
{
"editor.formatOnSave": true,
"editor.tabSize": 2,
"editor.wordWrap": "on", …Run Code Online (Sandbox Code Playgroud) reactjs ×5
javascript ×2
react-hooks ×2
android ×1
conditional ×1
emmet ×1
enzyme ×1
jsx ×1
prettier ×1
react-native ×1
recompose ×1