反应:使用来自其他组件的redux导出连接

时间:2018-06-20 07:07:57

标签: javascript reactjs react-native redux redux-form

我正在用React Native编写一个移动应用程序。我有两个js文件,如下所示:

Error.js

import React, { Component } from 'react';
import { connect } from 'react-redux';
import { getTranslate } from 'react-localize-redux';

function mapStateToProps(state) {
    return {
      t: getTranslate(state.locale)
    };
}

export default connect(
    mapStateToProps
)(
    ({ t }) => ({
        e001: t('wrong_format'),
        e002: t('invalid_email'),
    })
);

SignIn.js

import React, { Component } from 'react';
import { connect } from 'react-redux';
import { getTranslate } from 'react-localize-redux';
import { Field, reduxForm } from 'redux-form';
import Error from './Error';

const validate = (values) => {
    console.log('error: ', Error);
    // Process validate redux-form with messages from Error.js
};

class SignIn extends Component {
    // Process login form with redux-form
}

function mapStateToProps(state) {
    return {
        t: getTranslate(state.locale),
    };
}

const SignInForm = {
    form: 'SignIn',
    validate,
};

export default connect(
    mapStateToProps
)(
    reduxForm(SignInForm)(
        SignIn
    )
);

如何在SignIn.js中使用从Error.js导出的数据? (例如,值“ e001”,“ e002”)

来自validate函数的示例(在SignIn.js中),我想显示Error.js中代码“ e001”的值。

更详细地讲,我的想法是将语言文件中的所有错误消息(使用react-localize-redux)收集到Error.js中,然后从redux-form的validate函数中,我可以更轻松地显示这些消息。

1 个答案:

答案 0 :(得分:0)

您似乎想this.mSoundPool.setAudioAttributes(new AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_MEDIA) .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) .build()); 作为帮助文件。但是您将其实现为react-redux容器。

如果将其实现为react-redux容器,则每次存储发生变化时,它每次都会调用。

相反,只需导出即可。

Error.js

一次导入就称为

import { getTranslate } from 'react-localize-redux';

    const format = ({
                    e001: getTranslate('wrong_format'),
                    e002: getTranslate('invalid_email'),
                  })

export default format;