在 action.js 文件 Redux 中导出多个动作

IT技术 javascript reactjs
2021-05-13 07:35:05

我在这样的 action.js 文件中有两个动作。

const addpostid = (post) => {
    return {
        type: 'ADD_COMMENT',
        post
    }
}

const addcommentform = (login_status, author_name, author_email, content, parent) => {
    return {
        type: 'ADD_COMMENT',
        login_status, author_name, author_email, content, parent
    }
}

如何导出这些操作?

我只用export default它来做一个动作。

这是我的派遣:

function mapDispatchToProps(dispatch){
    return { 
      commentformadded: (login_status, author_name, author_email, content, parent) => dispatch(addcommentform(login_status, author_name, author_email, content, parent)) 
    };
  };
2个回答

像这样改变你的行为

export const addpostid = (post) => {
    return {
        type: 'ADD_COMMENT',
        post
    }
}

export const addcommentform = (login_status, author_name, author_email, content, parent) => {
    return {
        type: 'ADD_COMMENT',
        login_status, author_name, author_email, content, parent
    }
}

然后假设您的文件名是 testActions.js

在您的组件中,您可以像这样导入它

import * as testActions 'path to your action/testActions';

像这样使用你的功能

testActions.addpostid

或者

testActions.addcommentform 

或者

import { addpostid, addcommentform } from 'path to your action/testActions';

您只能导出一个默认值。但是,使用命名导出,您可以根据需要导出任意数量的module。你可以这样做

const addpostid = (post) => {
    return {
        type: 'ADD_COMMENT',
        post
    }
}

const addcommentform = (login_status, author_name, author_email, content, parent) => {
    return {
        type: 'ADD_COMMENT',
        login_status, author_name, author_email, content, parent
    }
}

export { addpostid, addcommentform };

并在文件中导入它们

import { addpostid, addcommentform } from 'path/to/actions';

或者简单地从类似的东西中导入所有的出口

import * as actions from 'path/to/actions';

并使用它们actions.addpostidactions.addcommentform