【发布时间】:2018-03-27 20:52:22
【问题描述】:
我已经阅读了多个在线资源,建议在您的操作中尽可能避免访问状态,但是我想知道在发出另一个异步请求之前检查我的状态中是否已经存在数据时这样做是否可以接受?目前我的行动是这样的:
export const setCategory = (id) => {
const state = store.getState();
const categories = state.display.categories;
const category = categories.find(category => category.id === id);
const categoryVids = category ? category.videos : {};
if(Object.keys(categoryVids).length <= 0) {
return dispatch => {
//Do some async stuff
}
}
}
对我来说,在这里访问状态似乎更合乎逻辑。将此逻辑移至组件是否被认为是更好的做法?
【问题讨论】:
-
只是一个警告,
const categoryVids = categories.find(category => category.id === id).videos;在找不到任何匹配的类别时会出错。你实际上是在打电话给undefined.videos。 -
@ChaseDeAnda 啊,是的,感谢您指出这一点
-
只有我的两分钱,我认为在这个例子中检查当前状态是有意义的。听起来您想在用户切换类别时预加载类别数据。
标签: javascript reactjs redux state