在我的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
-可以正常工作。
答案 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';
希望这会有所帮助。