如何从导出对象中提取方法

时间:2018-08-15 09:31:24

标签: reactjs ecmascript-6

在我的connector.js中有一个带有2个方法的对象。我只是导出孔对象,以在将来提取单个方法。但不起作用。我有什么问题吗?

connectors.js

const triggers = {
  add: function mapStateToProps(state) {
    return {};
  },
  remove: function countReducer(dispatch) {
    return {
      decount: () => {
        const action = { type: "DECREASE" };
        dispatch(action);
      }
    };
  }
};

export default triggers;

试图获取方法...但不起作用。

import React from "react";
import { connect } from "react-redux";
import triggers, { add, remove } from "./connectors"; //what is wrong here?

const Decounter = props => {
  return (
    <div>
      <h1>I am Decounter!!</h1>
      <button onClick={props.decount}>Decrement</button>
    </div>
  );
};

export default connect(
  add,
  remove
)(Decounter);

如果我使用triggers.add or triggers.remove-可以正常工作。

1 个答案:

答案 0 :(得分:2)

实际上,您将默认情况下导出整个对象,因此您无法导入其命名的参数。

#1方法:,您可以按原样进行操作,但在文件顶部对其进行解构:

import triggers from "./connectors";

const { add, remove } = triggers;

#2方法:使用命名函数并直接导出它们:

export const add = function mapStateToProps(state) {
    return {};
};

export const remove = function countReducer(dispatch) {
  return {
    decount: () => {
      const action = {
        type: "DECREASE"
      };
      dispatch(action);
    }
  }
};

然后导入:

import { add, remove } from './connectors';

希望这会有所帮助。