تحديث المخفض من مخفض آخر في رد الفعل الأصلي

أرغب في تحديث حالة المخفض من مخفض آخر في react-native.My code هو مثل هذا.

هذا هو العمل.

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 من هنا. بلدي mainFeedReducer هو هذا. أريد الوصول إلى مجموعة من الوظائف من mainFeedReducer من smReducer.

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 حول تدفق البيانات أحادي الاتجاه الصارم .

الطريقة الصحيحة هي تصميم مخفضاتك بطريقة تعالج المزيد من البيانات.

As mentioned in the docs

إذا كان المخفض بحاجة إلى معرفة بيانات من شريحة أخرى من الحالة ، فقد يحتاج شكل شجرة الولاية إلى معاد التنظيم بحيث واحد المخفض يتعامل مع المزيد من البيانات .

<�القوي> بدائل </قوي>

  • You may consider using redux-thunk, since the inner function, that recieves two parameters return (dispatch, getState), has an access to the entire state map.
  • If you have an instance of your store object, then you can directly access at the states by doing store.getState()
0
وأضاف