我想从react-native中的另一个reducer更新一个reducer的状态。我的代码是这样的。
这是行动。
export const doLike = payload => {
// Recieving response from the server
let updatedPost = {
Id: 1,
userId: 1,
postId: payload.post._id,
__v: 1,
count: payload.type === 1 ? 10 : 1
};
return {
type: SM_ACTION_LIKE,
post: updatedPost
};
};
这是接受行动的smReducer。
const initialState = {
post: {}
};
const smReducer = (state = initialState, action) => {
switch (action.type) {
case SM_ACTION_LIKE:
return {
...state,
post: action.post
};
break;
default:
return state;
}
return state;
};
export default smReducer;
现在我想从这里更改mainFeedReducer的posts数组。我的mainFeedReducer就是这个。我想从smReducer访问mainFeedReducer的posts数组。
const initialState = Immutable({
posts: [],
featuredWorkouts: []
});
const mainfeedReducer = (state = initialState, action) => {
switch (action.type) {
case FETCH_MAIN_FEED:
return {
...state,
posts: action.mainFeedData.posts,
featuredWorkouts: action.mainFeedData.featuredWorkouts
};
break;
default:
return state;
}
};
我怎样才能做到这一点?
答案 0 :(得分:1)
Redux架构围绕严格的单向数据流。
正确的方法是设计您的减速机,以便处理更多数据。
正如docs
中所述如果reducer需要知道来自另一个状态片的数据,状态树形状可能需要重新组织以便 >单个reducer处理更多数据。
<强>替代强>
return (dispatch, getState)
,
可以访问整个州地图。store
对象的实例,则可以通过执行store.getState()