【问题标题】:update values in the Reducer in Redux在 Redux 的 Reducer 中更新值
【发布时间】:2022-01-05 02:18:03
【问题描述】:

我从导航中获得了两个值,即company 和 id

let id = props.route.params.oved;
console.log("id-->",id);
let company = props.route.params.company;
console.log("company--->",company);

我得到了两个像这样的整数值:--

id-->1
comapny-->465

图片说明:---

如果我在该 textInput 中输入 1 并单击卡片(让我们说第一张卡片 ie465,那么我在导航中得到这两个值,就像我上面提到的整数一样。所以每次我得到更新的值.

我正在从导航中获取更新的值。

所以我想将这些值存储在 redux 中。

action.js:--

import { CHANGE_SELECTED_COMPANY } from "./action-constants";
export const changeCompany = (updatedCompany, updatedId) => {
  return {
    type: CHANGE_SELECTED_COMPANY,
    updatedCompany,
    updatedId,
  };
};

reducer.js:--

import { CHANGE_SELECTED_COMPANY } from "../actions/action-constants";

const initialState = {
  company: "",
  id: "",
};
const changeCompanyReducer = (state = initialState, action) => {
  switch (action.type) {
    case CHANGE_SELECTED_COMPANY:
      return {
        company: {
          company: action.updatedCompany,
          id: action.updatedId,
        },
      };
    
  }
  return state;
};

export default changeCompanyReducer;

configure-store.js:--

import changeCompanyReducer from "./reducers/change-company-reducer";
const rootReducer = combineReducers({changeCompanyReducer});

如何在 Redux 中存储从导航获取的更新值?

能否请你为 redux 写代码?

【问题讨论】:

    标签: reactjs react-native redux react-redux react-router


    【解决方案1】:

    在组件中创建一个更新值的函数

    const updateReducer = () => {
      dispatch(changeCompany(props.route.params.oved, props.route.params.company))
    }
    

    然后在反应导航生命周期事件中调用函数

    useEffect(() => {
        const unsubscribe = navigation.addListener('focus', () => {
          updateReducer()
        });
    
        return unsubscribe;
      }, [navigation])
    

    更好的解决方案可能是在导航发生之前更新减速器,而不是在参数中传递数据,而是从 redux 中提取数据,但这是问题的答案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-28
      • 2017-11-27
      • 1970-01-01
      • 2018-06-03
      • 2018-09-27
      • 2018-08-04
      • 1970-01-01
      • 2018-10-02
      相关资源
      最近更新 更多