在做出反应时,我将数据存储在状态中。问题是我能够存储和读取函数中的状态。但是如果我尝试在render()方法中读取它,我就无法读取状态。以下是代码:
import Opt from './GenerateData.jsx';
constructor(props) {
this.state = {
options : ""
}
this.handleOptions = this.handleOptions.bind(this);
}
handleOptions(params) {
this.setState({
options: params
});
// here it will print the state value
console.log(this.state.options)
}
//但它不会在这里打印..
render() {
return (
<Opt handleOptions={this.handleOptions.bind(this)} />
...
...
<FilterOpts name="optionSelection" data={this.state.options} />
)
}
在GenerateData.jsx
class GenerateData extends React.Component {
componentDidMount() {
var d = [1,2,3,4];
this.props.handleOptions(d);
}
render() {
return (
<div></div>
)
}
}
答案 0 :(得分:-1)
React setState()是异步的。它不会立即改变this.state,但会创建一个挂起状态转换。
您可以尝试使用此代码记录更新后的状态。
handleOptions(params) {
this.setState({
options: params
}, () => {console.log(this.state.options);}
);
}