данные не установлены должным образом в реакции и избыточности - PullRequest
0 голосов
/ 22 сентября 2019

Я получаю детали из java API. Я хочу установить некоторые детали для 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 Action:

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 }
    }
}

Я добавляю objDetails в commonVO. Но во время «Отправка формы» дляЭти данные были установлены, я не могу видеть новые свойства, устанавливаемые в commonVO.

Я новичок в React-Redux и не очень знаком с ним. Пожалуйста, дайте мне знать, если мне нужно сделатьчто-то еще на стороне Redux-реакции?

Спасибо

Редактировать : я добавил метод 'populateobjDetails' в функцию 'mapDispatchToProps' (отсутствующий в коде) и импортировалметод в компоненте

1 Ответ

0 голосов
/ 23 сентября 2019

Внутри вашего редукционного действия getDetails, который вы вызываете:

dispatch(populateobjDetails(obj, commonVO))

Однако, obj на самом деле нигде не определено внутри этого действия, поэтому неопределенный объект передается в populateobjDetails,вот почему вы не видите, как устанавливаются новые свойства.

...