绩效:在React中分派动作与作为道具传递

时间:2020-07-01 16:37:53

标签: javascript reactjs redux store reducers

我有一个技术问题。我试图通过在子组件内部使用动作分派器将值从子组件传递到存储。然后,该动作分派器更新化简器中的状态值。

建议通过这种方式从子组件传递值吗?它会影响React应用的性能吗?

或者我应该使用道具从子组件传递到父组件,然后更新状态。

请提供咨询,因为我对此进行了大量搜索,但未获得任何信息。

1 个答案:

答案 0 :(得分:1)

将调度程序传递给您的孩子的问题是您的孩子组件不是很可重用。我建议将回调方法传递给您的孩子,其中包含分派事件的逻辑。

父母:

class ParentComponent extends React.Component {

  loginHandler(){
    ...
    this.props.someMethod();
  }

  render() {
    return {
      ...
      <ChildComponent click="loginHandler"></ChildComponent>
      ...
    }
  }
}
const mapDispatchToProps = dispatch => {
  return {
    // dispatching plain actions
    ...
    someMethod: () => dispatch({ ... }),
    ...
  }
}
export default connect(null, mapDispatchToProps)(ParentComponent);

子组件:

function ChildComponent({click}) {
  return {
    ...
    <button click={click}></button>
    ...
  }
}

现在,使用这种方法,您的子级方法将不包含任何业务逻辑。它可以在多个地方使用。