Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在reducer中的回调中调用self_Reactjs_React Native_React Redux - Fatal编程技术网

Reactjs 在reducer中的回调中调用self

Reactjs 在reducer中的回调中调用self,reactjs,react-native,react-redux,Reactjs,React Native,React Redux,我有以下减速器: export const changeListener = () => (dispatch) => { changeListenerManager.update((res) => { changeListener(); dispatch({ type: 'CHANGE', payload: res }); }); }; 它应该调用changeListener()函数,就在它被回调之后。但是,当响应从本机网桥返回时(网桥接收回调函数并存

我有以下减速器:

export const changeListener = () => (dispatch) => {
  changeListenerManager.update((res) => {
    changeListener();
    dispatch({ type: 'CHANGE', payload: res });
  });
};

它应该调用
changeListener()函数,就在它被回调之后。但是,当响应从本机网桥返回时(网桥接收回调函数并存储它,当发生更改时,它使用回调函数通知应用程序),该函数根本不会被调用,也不会出现错误。如果我试图从回调调用该方法(在调试器中),我会得到未定义的信息。如何解决该问题?

changeListener
是一个常用函数,因此需要传递第二个所需参数
dispatch

例如:

changeListener()(dispatch);

注意:当前逻辑似乎有一个无限循环。

changeListener是一个常用函数,因此需要传递第二个所需参数
dispatch

例如:

changeListener()(dispatch);

注意:当前逻辑似乎有一个无限循环。

当您调用函数“body”中的
changeListener
时,您需要调用它两次。一次不发送,一次发送:

export const changeListener = () => (dispatch) => {
  changeListenerManager.update((res) => {
    changeListener()(dispatch);  // <--- CHANGE
    dispatch({ type: 'CHANGE', payload: res });
  });
};
export const changeListener=()=>(分派)=>{
changeListenerManager.update((res)=>{

changeListener()(dispatch);//当调用函数“body”中的
changeListener
时,需要调用它两次。一次不使用dispatch,一次使用:

export const changeListener = () => (dispatch) => {
  changeListenerManager.update((res) => {
    changeListener()(dispatch);  // <--- CHANGE
    dispatch({ type: 'CHANGE', payload: res });
  });
};
export const changeListener=()=>(分派)=>{
changeListenerManager.update((res)=>{

changeListener()(dispatch);//非常感谢您的回答!它确实有无限循环-changeListener识别时区更改,我无法想象它会如此频繁地更改:)很高兴为您提供帮助!:)非常感谢您的回答!它确实有无限循环-changeListener识别时区更改,我无法想象会如此频繁地更改:)很高兴提供帮助!:)