【问题标题】:data is not properly set in react and redux数据在 react 和 redux 中设置不正确
【发布时间】:2019-09-22 16:57:38
【问题描述】:

我正在从 java API 获取详细信息。我想在 UI 端将一些详细信息设置为 commonvo 并发送 commonvo 对象到服务器端。我正在使用以下代码:

反应组件

import { getDetails, populateobjDetails } from './CommonAction'

     function mapDispatchToProps(dispatch) {
            return {
                getDetails: (formType, commonVO) => dispatch(getDetails(formType, commonVO)),
                populateobjDetails: (obj, commonVO) => dispatch(populateobjDetails(obj, commonVO)) //edit 1
             }
        }

Redux 操作:

export function getDetails(requestFormType, commonVO) {
    return (dispatch) => {

        axios.get(`${ROOT_URL}/byName/${commonVO.name}`, { headers: { 'Cache-Control': 'no-cache,no-store,must-revalidate,max-age=-1,private', 'Pragma':'no-cache' } }).then(
        (response) => {

                let obj= dispatch(setDetails(response.data[0]));
                dispatch(populateobjDetails(obj, commonVO))
                dispatch(setobjSearchLoadingFlag(false))
            }
        )
    }
}

export function populateobjDetails(obj, commonVO) {
    const objDetails = {
        projectAlias: obj.projectAlias,
        dateExpenseClose: obj.dateExpenseClosed,
        projectID: obj.projectId,
        id: obj.id,
        idClass: obj.idClass
    }
    return {
        type: POPULATE_OBJ_DETAILS,
        payload: { ...commonVO, ...objDetails }
    }
}

我在 commonVO 中添加 objDetails。但是在设置了这些详细信息的“提交表单”期间,我无法看到新属性被设置到 commonVO 中。

我是 React-Redux 的新手,对它不太熟悉。如果我需要在 Redux-react 方面做更多事情,请告诉我?

谢谢

编辑:我在“mapDispatchToProps”函数中添加了“populateobjDetails”方法(代码中缺少该方法)并在组件中导入了该方法

【问题讨论】:

    标签: reactjs redux react-redux


    【解决方案1】:

    在您调用的 redux 操作 getDetails 中:

    dispatch(populateobjDetails(obj, commonVO))
    

    但是,obj 并未真正在该操作中的任何地方定义,因此未定义的对象被传递给 populateobjDetails,这就是您看不到设置新属性的原因。

    【讨论】:

    • 感谢您的回复。对不起,我在这里输入了错误的名称,我需要将相同的对象(在本例中名为 'obj')传递给我从 API 响应中获得的方法 'populateobjDetails'。我已经编辑了我的问题,请检查一次,如果你得到它,请告诉我。非常感谢。
    猜你喜欢
    • 2020-10-28
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多