进行1次分派时,无限循环分派会通过connect mapStateToProps

时间:2020-07-13 00:32:11

标签: reactjs react-redux

这是我尝试删除...state并用下面的注释替换的代码,但是在分派时出现错误,下面的代码不起作用

 props.add();
  // props.add();
  // props.add();

  return (
    // <div className="container">
    //   <BrowserRouter>
    //     <Nav />
    //     <Switch>
    //       <Route path="/reg" component={Reg} />
    //       <Route path="/log" component={Log} />
    //     </Switch>
    //   </BrowserRouter>
    // </div>
  );
}

let mapStateToProps = (state) => {
  return {
    ...state
    // counter: state.counter,
    // bool: state.bool,
  }
}
let mapDispatchToProps = (dispatch) => {
  return {
    add: () => dispatch(add()),
    rem: () => dispatch(rem()),
    pos: () => dispatch(pos()),
    neg: () => dispatch(neg())
  }
}

export default connect(mapStateToProps, mapDispatchToProps)(App);

enter image description here

1 个答案:

答案 0 :(得分:1)

看起来add方法位于render方法中,因此每次渲染此组件时都会调用此方法。反过来,这将更新存储并重新渲染导致无限调用的组件。

您要在这里实现什么?尝试将add呼叫移至按钮单击或componentDidUpdate中,以防止无限呼叫。