Почему параметр внутри действия возвращается как неопределенный при использовании приставки? - PullRequest
0 голосов
/ 17 октября 2018

В настоящее время у меня есть страница, на которой отображается список дат. Когда пользователь нажимает на определенную дату, пользователь перенаправляется на новую страницу, на которой отображается график даты, которую он нажал.

Я хочу использовать приставку для обновления реквизита, чтобы я мог отобразить определенный график в зависимости от того, на какую кнопку нажал пользователь.

Внутри моего renderList () я возвращаю сопоставленный массив, который, в свою очередь, возвращает кучу TouchableOpacities.Внутри каждого TouchableOpacity, внутри события onPress, вызывается другая функция, которая передает всю информацию о тесте в качестве параметра.renderList выглядит следующим образом.

let sorted = _.orderBy(this.props.testResults, testResult => testResult.created, 'desc');
        moment.locale(localeToMomentLocale(I18n.locale));
        return sorted.map((result, index) => {
            let formattedDate = moment(result.created).format(I18n.t('report_header_dformat'));
            let correctedDate = vsprintf(I18n.t('report_date_correction'), [formattedDate]);
            let analysis = TestAnalysis.run(result);
            return (
                <TouchableOpacity
                    onPress={() => this.resultOrTest(result)}
                    style={styles.row} key={'_' + index}>
               </TouchableOpacity>

resultOrTest выглядит следующим образом:

resultOrTest = (result) => {
        console.log('ReportDetailPage: resultOrTest: showing result: ', result.id);

        this.props.setResultIdToProps(result.id);
        this.props.navigation.navigate('ReportSinglePage');
    };

mapDispatchToProps выглядит следующим образом:

const mapDispatchToProps = (dispatch) => {
    return {
        setResultIdToProps: () => {
            dispatch(setResultIdToProps());
        }
    }
}

export default connect(mapStateToProps, mapDispatchToProps)(ReportDetailPage);

внутри моей страницы действий / user.js,

export const setResultIdToProps = (resultId) => {
    // var newId = resultId.toString();
    console.log('actions/user.js setResultIdToProps: resultid.......', resultId);
    return (dispatch, getState) => {
        dispatch({
            type: SET_RESULT_ID_TO_PROPS,
            resultId
        });
    }
};

Почему resultId продолжает возвращаться как неопределенное?Я передал неправильное значение / параметр?

1 Ответ

0 голосов
/ 17 октября 2018

Вам необходимо правильно передать параметр диспетчеру действий в mapDispatchToProps.Прямо сейчас вы не передаете resultId, следовательно, оно передается как undefined.

const mapDispatchToProps = (dispatch) => {
    return {
        setResultIdToProps: (resultId) => {
            dispatch(setResultIdToProps(resultId));
        }
    }
}
...