Javascript 将操作连接到函数
最近我一直在使用react类,使用mapStateToProps和react redux connect,因此我能够在类中使用操作,但是现在我尝试编写不属于以下类的函数Javascript 将操作连接到函数,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,最近我一直在使用react类,使用mapStateToProps和react redux connect,因此我能够在类中使用操作,但是现在我尝试编写不属于以下类的函数 import { some_imported_action } from '../actions/my_actions'; export function f() { some_imported_action(); } 但是,我在尝试让函数运行导入的操作时遇到了问题,我假设问题是尝试将react redux connec
import { some_imported_action } from '../actions/my_actions';
export function f() {
some_imported_action();
}
但是,我在尝试让函数运行导入的操作时遇到了问题,我假设问题是尝试将react redux connect与函数而不是类一起使用。当我运行上面的代码时,不会发生任何错误,但操作不会执行
我尝试导入道具类型,并使用
some_imported_action: PropTypes.func.isRequired
我试图运行它时遇到的错误与“this”有关,或者“props”在行中未定义
this.props.some_imported_action();
我想如果没有一门课,这可能是不可能的,有什么想法吗?
感谢当调用f()
函数时,Redux不会发生任何事情,因为操作创建者(某些导入的操作
)未连接到您的应用商店
Redux操作需要使用store.dispatch
函数进行调度,以便由还原程序处理。
接收函数作为第二个参数amapDispatchToProps
对象或函数:
[mapDispatchToProps(分派,[ownProps]):分派Props]
(对象或函数):
如果传递了一个对象,则假定其中的每个函数都是
Redux操作创建者。具有相同函数名但具有
每个action creator都打包到一个分派调用中,以便
直接调用,将合并到组件的道具中
如果传递了一个函数,它将作为第一个参数被分派。这取决于您返回一个对象,该对象以某种方式使用dispatch以您自己的方式绑定动作创建者
传递名为someAction
的回调道具的示例,该道具与storedispatch
绑定:
import { connect } from 'react-redux';
const someAction = () => ({ type: 'SOME_ACTION' });
function MyComponent({ someAction }) {
return <div onClick={someAction}>...</div>;
}
export default connect(null, { someAction })(MyComponent);
从'react redux'导入{connect};
const someAction=()=>({type:'SOME_ACTION'});
函数MyComponent({someAction}){
返回。。。;
}
导出默认连接(null,{someAction})(MyComponent);
阅读与React Redux相关的更多信息是否有一种方法可以将组件纯粹作为函数写入和调用,而不返回任何要渲染的内容。例如,如果您有另一个函数要调用
MyComponent
,请向其传递一个值,然后使用该值运行someAction
操作。如果我理解您的问题,您要求直接使用功能组件而不是jsx元素。是的,只需在另一个已安装组件的呈现中调用您的函数。如果我没听懂,请再问一个问题。干杯