我正在使用 Reactjs。如果未正确输入,我将在其中设置错误。
示例代码是:
handleChange: function() {
if(shares) {
this.setState({
error_shares:''
})
}
if(this.state.error_shares === ''){
console.log('entered!!')
}
}
Run Code Online (Sandbox Code Playgroud)
这里的值error_state不反映下一个更改的值,如果
是的,这是所需的行为。
值没有更新的原因是因为你的组件还没有被重新渲染。
如果您需要这样的功能,您应该使用 componentDidUpdate回调。
在此处查看生命周期方法。
解释:
下面是 React 的工作原理:
每个组件都是external props+的函数internal state
如果触发了两者之一的更改,则组件将排队等待重新渲染(它是异步的,因此不会阻止客户端应用程序)。
有关确切的操作顺序,请参阅上面的链接,但这里有一些概念证明。
import React from 'react';
class Example extends React.Component {
constructor(props, context) {
super(props, context);
// initial state
this.state = {
clicked: false
};
}
componentDidUpdate(prevProps, prevState) {
console.log(this.state.clicked); // this will show "true"
}
render() {
return (
<button
onClick={() => {
this.setState({clicked: true});
}}
>
</button>
);
}
}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
2202 次 |
| 最近记录: |