首页 > 解决方案 > 在状态中获取动态属性的语法

问题描述

我有一个状态,我在其中创建了动态属性,例如

option_0:'opt1',
option_1:'opt2

whereopt1opt2是动态获取的。用户输入等后的整个状态如下所示::

{
  options_number:4,
  options_0:'opt1',
  options_1:'opt2',
} 

等等。我想控制台记录每个动态值的值,其中存储了选项编号。所以我这样做:

for(var _options_number=0; _options_number<=this.state.options_number; _options_number++){
  console.log(this.state[`options_`+${_options_number}])
}

但在进行了少量的语法实验之后,它给出了NaNor 。undefined请让我知道正确的语法来获取每个动态生成的状态属性的值(例如this.state.options_ ..)

标签: reactjs

解决方案


看看这是否有帮助,否则您必须更具体地了解如何存储动态获取的状态。

class Testing extends React.Component{

   constructor(props){
    super(props); 
    this.state={
      option_0:'opt1',
      option_1:'opt2'
    }
   }
   
   componentDidMount(){
    for (const item in this.props.options) {
      console.log(`Value for options_${item} is: `)
      console.log(this.state[`option_${item}`])
    }
   }
   
   render(){
    return( 
      <div>Check console </div>
    )
   }
}


class App extends React.Component{
  
  render(){
    return(
    
      <Testing options={{0:'opt1', 1:'opt2'}} />
    
    )
  }
}

ReactDOM.render( <App />, document.getElementById("root"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root" /> 


推荐阅读