所以这是我的情况。我有一个从数据库加载一些数据,像这样的组件:反应加载数据从DB和存储在状态只有一次
const task= fetch(`http://example.com`)
.then(result => result.json())
.then(result => {
this.setState({
items: result
})
});
addTask(task);
现在,如果我这个代码添加到componentWillMount
方法,但没有工作,我每次加载该组件时,这种方法会火我不想每次都调用数据库。我希望它在第一次加载时调用一次,然后将其存储在状态中,而不再重新调用。
而且因为我渲染的项目清单,我必须手动设置在构造这个items
变量,以避免null
错误:
constructor() {
super();
this.state = {
items: [],
}
}
我的问题是,我怎么能只有一次加载这个数据和然后将其设置为items
状态变量。我已经尝试将所有代码添加到组件的缩减器中(我正在使用redux
),但它不起作用。
问题是,每次组件加载时,构造函数都会触发并将'items'设置为[]。 – dsthetics
哦,我很抱歉,我认为这不是使用redux的好方法...您是否可以访问您的redux状态? –