我正在使用它们的索引渲染项目列表,并希望分别设置和检索这些项目的状态。例如,如果我正在渲染的特定项目未激活,那么我将渲染持续时间文本。
我的问题在以下示例中:如何评估类似this.state.[index]'started'
的对象,其中index实际上是平面列表的索引,而不是状态对象中的value索引?我需要将其自动评估为this.state.1started
和this.state.2started
...。this.state.nstarted
。
{!this.state.index && (
<Text style = {styles.timertext}>
{this.state.duration}:00
</Text>
)}
答案 0 :(得分:2)
尝试使用括号表示法访问对象的属性:
this.state[`${index + 1}started`]
答案 1 :(得分:0)
您可以将字符串用括号表示法连接起来
例如:
var obj = { '1started': '2:30', '2started': '3:30' }
for (i = 1; i < 3; i++ ) {
console.log(obj[i +'started']) // 2:30 3:30
}
因此,您可以使用this.state[index + 1 +'started']