javascript - react JSX : Access props keys dynamically

标签 javascript arrays reactjs object

假设我有一个字段列表,我想在要传递给该组件的 Prop 上访问这些字段。

下面的代码不起作用,但是否可以访问某些 Prop 值:{session['myCustomKey']}

class MyComponent extends React.Component {

  render() {
    const { myObj } = this.props;
    const fields = ['field_1', 'field_2', 'field_3'];

    return (
      <div className={'row'}>
        {fields.map((field) =>
          <div className={'col-sm-4'}>
            <div className={'row'}>
              <InputText
                id={`{${myObj} + ${field}`}
                value={`${myObj} + "." + ${field}`}
                isDisabled
              />
            </div>
          </div>
      )}
      </div>
    );
  }
}

最佳答案

props是一个对象,我们可以通过props.data['key']访问值。

检查这个例子:

var App = ({data}) => {
   let fields = ['a', 'b', 'c'];
   return(
     <div>
        {
           fields.map(el=> <p> {data[el]} </p>)
        }
     </div>
   )
}

let data = {'a': 1, 'b': 2, 'c': 3};

ReactDOM.render(<App data={data}/>, document.getElementById('app'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

<div id='app'/>

但我认为不需要在单独的数组中定义键,如果您想迭代props数据(从父级传递),那么您可以像这样使用它这也是:

Object.keys(this.props.myObj).map(el => {
    return <p key={el} > {el}: {this.props.myObj[el]} </p>
})

关于javascript - react JSX : Access props keys dynamically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43743080/

相关文章:

javascript - 使用 Angular,如何仅在 DOM 元素的 ID 与范围变量匹配时才显示该元素?

javascript - 如果使用 jquery/javascript 锁定 iphone,如何提交表单

javascript - 使用 JSON 和 Ajax 发送不可编辑的数组

c++ - 在访问多维数组的内置数组和初始化列表时交换标识符和下标

javascript - ReactJS - 如何在使用数组时设置 <td> 标签的样式?

javascript - React JS - 渲染独立组件

javascript - 动态文本区域高度

javascript - 为什么添加默认参数值会在修改参数时改变行为?

java - 打印字符的最大/最小代码点时的字符串处理问题

reactjs - 如何使用 jest 和 RTL 模拟来自 react 组件的异步操作调用