所以我有一个组件执行通过Promise返回的API调用:
getStuff(url).then(val => this.setState(prevState => {prevState.alltime = val}));
这是在componentDidMount中调用的,并成功解析为状态数组。
我还有一个组件,我将此数组映射到
const relevantData = this.state[this.state.sortType];
let items= <p> no data</p>;
if (relevantData){
items = relevantData.map((prop, i) => {
prop.i = i;
return(<BoardItem prop={prop} i={i} key={i}/>)})
}
然后在渲染功能
中<div> {items} </div>
当我在控制台中看到promise解析时,没有任何渲染,但下次我渲染无关状态时(例如在react devtools中运行$ r.setState({test:&#39; test}),一切都会呈现出来
答案 0 :(得分:0)
设置状态应该返回表示(修改的)状态属性的单个对象。
在componentDidMount
方法中,正确的语法是:
getStuff(url).then(val => this.setState({ alltime: val }));
有关详细信息,请参阅https://reactjs.org/docs/state-and-lifecycle.html#using-state-correctly。