如何解决如何创建一个类似于react readux中如何使用dispatch的柯里化函数
我需要先说明以下代码只是为了便于演示的简单代码。但我正在尝试在纯 js(无反应)中创建一个柯里化函数(或者至少我认为这就是它的名字)类似于 react/redux 如何使用这样的调度:
const action = (val) => (dispatch) => {
// The function can Now use val and dispatch
}
我将多个函数传递给一个关联函数,该函数将添加一个状态值和一个 setState 值,我希望能够像这样使用该函数:
const action = (val) => (state,setState) => {
// the function can Now use val,state,and setState
}
action('foo');
关联函数目前如下所示:
const action1 = (val) => {
setState(val);
};
const action2 = (val) => {
setState(val);
};
const associateActions = (actions) => {
const associated = {};
Object.keys(actions).forEach((key) => {
associated[key] = function (...args) {
actions[key](...args,setState);
};
});
return associated;
};
const associatedActions = associateActions({ action1,action2 });
但我希望能够将 state 和 setState 传递给这样的操作:
const action1 = (val) => (state,setState) => {
setState(val);
};
const action2 = (val) => (state,setState) => {
setState(val);
};
我可以轻松地将 state 和 setState 函数添加到最后,就像 (...args,setState)
一样,但似乎将它们附加到最后会让人感到困惑,所以我想弄清楚如何编写它们在拖尾柯里化函数中,但我无法弄清楚如何这样做。
这是一个与 Fiddle Demo 一起玩的 jsfiddle
任何帮助将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。