React:动态创建的状态变量

Ken*_*gin 2 javascript reactjs

我试图运行下面的代码,但我undefinedconsole.log语句中得到了一个。有什么想法吗?

this.setState({ [show]: true })
console.log("this.state.show: " , this.state.show);
Run Code Online (Sandbox Code Playgroud)

小智 5

在您的代码中,您没有完全为显示设置状态。例子:

const show = 'light';
this.setState({[show]: false}) // you set state for 'light'(this.state.light: false)
Run Code Online (Sandbox Code Playgroud)

如果你之前没有设置变量显示,你应该使用:

this.setState({ show: true })
Run Code Online (Sandbox Code Playgroud)

如果您需要在设置后立即获得状态:

this.setState({ show: true }, () => console.log("this.state.show: " , this.state.show);)
Run Code Online (Sandbox Code Playgroud)