reactjs - 如何从导出对象中提取方法
问题描述
在我connector.js
有一个带有 2 种方法的对象。我只是导出洞对象以在将来提取各个方法。但不起作用。我有什么问题吗?
连接器.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 方法:您可以按原样执行,但在文件顶部对其进行解构:
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';
希望它会有所帮助。
推荐阅读
- c# - 找不到文件... bin\roslyn\csc.exe
- php - Laravel 路由对于静态页面无法正常工作
- html - 如何让圆形菜单(包括悬停+链接功能)完全响应?
- angular - 如何通过 Angular 中的回调函数格式化 API 响应
- laravel - 如何通过缓存加速 Gitlab CI 配置?
- kubernetes-helm - Helm /.helm/repository/local/index.yaml 文件为空
- laravel-5 - 外部 API 登录时无法验证 JWT 令牌签名错误
- java - 如何使用 Spring Rest 模板从 Firebase 接收随机生成的 json 值?
- java - Java - 每个输入记录多个用户输入
- mysql - 如何使用正则表达式将参数化字符串添加到查询中