Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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
Javascript 学习雷迪克斯·图恩。如何触发行动_Javascript_Reactjs_Redux Thunk - Fatal编程技术网

Javascript 学习雷迪克斯·图恩。如何触发行动

Javascript 学习雷迪克斯·图恩。如何触发行动,javascript,reactjs,redux-thunk,Javascript,Reactjs,Redux Thunk,我正在学习Thunk,我不确定我做错了什么。 下面我有两个动作创作者。第一个返回一个对象,第二个返回一个函数(“Thunk”) 当调用doThing操作创建者时,我希望一秒钟后调用名为pingApiAction的操作创建者。就目前而言,这并没有发生 我做错了什么 export const pingApiAction = function(){ console.log("ping") return {type:"PING"} } exp

我正在学习Thunk,我不确定我做错了什么。 下面我有两个动作创作者。第一个返回一个对象,第二个返回一个函数(“Thunk”)

当调用
doThing
操作创建者时,我希望一秒钟后调用名为
pingApiAction
的操作创建者。就目前而言,这并没有发生

我做错了什么

export const pingApiAction = function(){
    console.log("ping")
    return {type:"PING"}
}



export function doThing() {
    console.log("works")
  return (dispatch) => {
    setTimeout(() => {
      // Yay! Can invoke sync or async actions with `dispatch`
      dispatch(pingApiAction());
    }, 1000);
  };
}

从我看来,你的问题是你的减速机,而不是你的行动或行动的创造者

因此,如果您希望更正自己的代码,您可以粘贴您的减速机,或者简单地使用我为您编写的减速机:

//action creator
 const pingApiAction = function(){
    console.log("ping")
    return {type:"PING"}
}


//action creator
function doThing() {
    console.log("works")
  return (dispatch) => {
    setTimeout(() => {
      // Yay! Can invoke sync or async actions with `dispatch`
      dispatch(pingApiAction());
    }, 1000);
  };
}

 
//reducer
const reducer =(state={ping:""},action)=>{
  
  switch(action.type){
    case "PING":
      return{...state,ping:"It works"}
        
        default:
        return state;
  }
}

const store = Redux.createStore(reducer);
console.log(store.getState());

store.dispatch({ type: 'PING' });
console.log(store.getState());

从我看来,你的问题是你的减速机,而不是你的行动或行动的创造者

因此,如果您希望更正自己的代码,您可以粘贴您的减速机,或者简单地使用我为您编写的减速机:

//action creator
 const pingApiAction = function(){
    console.log("ping")
    return {type:"PING"}
}


//action creator
function doThing() {
    console.log("works")
  return (dispatch) => {
    setTimeout(() => {
      // Yay! Can invoke sync or async actions with `dispatch`
      dispatch(pingApiAction());
    }, 1000);
  };
}

 
//reducer
const reducer =(state={ping:""},action)=>{
  
  switch(action.type){
    case "PING":
      return{...state,ping:"It works"}
        
        default:
        return state;
  }
}

const store = Redux.createStore(reducer);
console.log(store.getState());

store.dispatch({ type: 'PING' });
console.log(store.getState());
那么发生了什么?您是否看到控制台中的
工作
?您能告诉我们在哪里/如何调用
doThing
的函数调用吗?那么发生了什么?您是否看到控制台中的
工作
?您能告诉我们在哪里/如何调用
doThing
的函数调用吗?