reactjs - 如何使变量可用于组件中的每个方法?

标签 reactjs redux components

假设我将商店状态映射到 Prop ,如下所示:

const mapStateToProps = state => {
    return {
        somelist: state.somelist
    };
};

我需要在渲染中创建变量,例如:

render() {
  const { somelist } = this.props;
  const somenestedlist = somelist.list;
}

但是,在我的渲染方法中,我还调用了另一个需要这些相同变量的方法。所以我可以:

(1) 从渲染方法传递它,例如:

render() {
  const { somelist } = this.props;
  const somenestedlist = somelist.list;

  <div onClick={()=>this.someothermethod(somenestedlist)}
}

(2) 在非 DRY 的 someothermethod() 中重新声明它们。

(3) 创建一个返回所需值的函数,并在需要的地方调用它,如下所示:

getList() {
  const { somelist } = this.props;
  const somenestedlist = somelist.list;

  return somenestedlist;
}

或者有比这些示例更好的方法吗?

最佳答案

您可以在mapStateToProps中转换一些嵌套列表:

const mapStateToProps = state => {
    return {
        somelist: state.somelist,
        somenestedlist: state.somelist.list
    };
};

在任何地方,你都可以使用 this.props.somenestedlist

关于reactjs - 如何使变量可用于组件中的每个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52250451/

相关文章:

javascript - Angular 2 - ngrx 订阅在每次状态更改时运行

c# - 我怎么能代表一系列事件,比如谷歌日历?

node.js - React App 和 Express API 的单个可执行文件

reactjs - 有没有办法在 Admin-on-rest 客户端的 ListView 中编辑 'record' 对象?

javascript - 清理 Redux 状态

html - HTML 中的可重用 View 组件

javascript - 为什么在无状态函数表达式中中断 'console.log'?

javascript - 如何从单个 react 组件调用多个 graphql 突变?

javascript - 无法使用 fetch() 从 api 获取数据

javascript - Redux-form:在模式弹出时如何从 API 调用加载值(编辑模式)到表单?