我注意到在不需要的地方使用Redux,例如,我有一个可以加载该帖子的帖子页面,它是评论。
它们仅在该页面上呈现,并且在其他地方不需要,我可以将数据从我的Post容器传递给子道具。
现在我想知道当不使用Redux时如何保持干净状态?我目前正在使用2个API调用来加载帖子数据和评论数据,并且Promise.all()等待它们都完成,然后再隐藏加载。
componentDidMount() {
Promise.all([
pathService.get(this.props.match.params.slug),
courseService.get(this.props.match.params.slug)
]).then(promises => {
this.setState({
loading: false,
path: promises[0].data,
courses: promises[1].data
})
});
}
这是处理像这样的关系数据的正确方法吗?还有其他选择,还是我应该以任何一种方式查看Redux?
答案 0 :(得分:3)
我想说,如果您想继续不使用Redux,那么当前的方法很好。
您是否使用Redux在很大程度上取决于您对Redux的熟悉程度以及应用程序的大小。当您说它经常不必要地使用时,您是对的,但有时它可能是有用的工具。
对于此特定组件,如果您在其他与Post组件没有直接父/子关系的组件中使用Promises的结果状态,则Redux可能会有所帮助。您可以想象,将结果状态一直传递到组件树的整个路径,然后再返回到树的另一分支中的另一个组件可能会很麻烦。这是Redux存储出色的时候,因为您可以从存储中检索此状态,而不必将其传递给整个组件树。
奖金:如果您正在寻找其他方法,并且可以使用全新的React功能,请查看React挂钩。它们是处理更复杂问题的好方法 完全不使用Redux的状态! https://reactjs.org/docs/hooks-intro.html
答案 1 :(得分:-1)
此GitHub URL提供您想要的内容: https://github.com/fozg/react-light-state 该库流畅地管理状态,非常容易保存到存储中,享受它!