我正在使用react钩子和redux钩子。
我有一个检查redux状态的组件。如果状态不存在,它将执行useDispatch
来获取所需的书。
在传奇中,有多种功能,但是我刚刚将保存到存储中的最后一部分发布了,因为这是我要解决的问题。
传奇成功推送到商店(redux开发工具显示新状态),但发布新状态时组件未重新呈现。
这里有任何线索吗?
myComponent.js
const topBooks = useSelector(state => state.BOOKS[TOP_BOOKS]);
const dispatch = useDispatch();
if (!topBooks) {
dispatch(fetchTopBooks(TOP_BOOKS));
}
return (
<Shelf>
<Books books={topBooks} />
</Shelf>
);
}
bookSaga.js
function* saveBooks() {
while (true) {
const { payload } = yield take(SAVE_BOOKS);
yield put({
type: SET_TOP_BOOKS,
payload
});
}
}
bookReducer.js
const initialState = {};
const actionMap = {
[SET_TOP_BOOKS](state, action) {
return {
TOP_BOOKS: action.payload
};
}
};