javascript - 使用变量引用创建 react 状态名称?

标签 javascript reactjs

我想创建这样的状态:

componentWillReceiveProps(nextProps) {
    nextProps.columns.forEach((c) => {
      const name = nextProps.columns[nextProps.columns.indexOf(c)];
      this.setState({ `${name}`: (this.props.activeHeaders.indexOf(c) > -1) });
      console.log(`${name}`);
    });
  }

我正在映射我的数组列,因此数组上的每个项目,我想将它们的状态设置为键,有可能的方法吗?

最佳答案

Is there a possible way?

是的,但是您尝试的方式不正确,不是在循环内调用 setState,而是首先准备一个包含所有键值的对象,然后将该对象传递给 setState。

像这样:

componentWillReceiveProps(nextProps) {
    let obj = {};

    nextProps.columns.forEach((c, i) => {
        const name = nextProps.columns[nextProps.columns.indexOf(c)];
        obj[name] = this.props.activeHeaders.indexOf(c) > -1;
    });

    this.setState(obj);
}

没明白这行的意思:

const name = nextProps.columns[nextProps.columns.indexOf(c)];

关于javascript - 使用变量引用创建 react 状态名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48297639/

相关文章:

javascript - .NET Core 2.1 使用 React 模板 - 使用 "fetch()"时位置 0 处出现意外 token < json

css - 我如何为不同的组件使用不同的 css 文件 React 具有相同的类名

javascript - &lt;script&gt; 里面的 javascript 代码 document.write()

javascript - 如何在水平行中显示按钮?

c# - 当 TextBox 有值而 CheckBox 没有值时的自定义验证

javascript - HTML, CSS, JavaScript

javascript - 如何映射单选按钮并检索不重复的值

javascript - 以下模式如何工作 const { Component } = React

javascript - 使用 React Suspense 和 React.lazy 子组件进行 Jest/Enzyme 类组件测试

reactjs - 如何将 react-redux 'useSelector' 与附加变量一起使用?