我将首先声明我是 React.js 的完全初学者
我创建了一个我正在处理的项目示例,我在其中调用 componentDidMount() 中的 API 并返回一组对象,将其设置为状态。这是它的样子:
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
thing: []
};
}
componentDidMount() {
this.setState({
thing: [
{
status: "running",
test: "testing"
}
]
});
}
render() {
return (
<div>
<h1 className="mt-5 mb-5">{ this.state.thing[0].status }</h1>
<button className="mt-5" onClick={ this.handleUpdate } value="not running">
Click to change
</button>
</div>
);
}
}
我知道 setState 在根据文档使用时不能保证更新。我还发现了“forceUpdate()”,并且文档建议尽可能少地使用它。尽管如此,我尝试使用它,但无济于事。
我能够在 componentDidMount() 运行期间和渲染的 h1 元素中控制台.log 新状态,但我无法在渲染中实际显示它,因为它首先渲染一个空状态数组。
我的问题是:有没有办法在我的程序运行渲染之前强制我的状态更新,以便我能够看到它,如果没有,我怎么能看到我的新状态反映在 JSX 中?
旁注:我的 JSX 按钮中有一个 onClick,但我已经放弃了,直到我能够在我的 JSX h1 中看到新状态