[英]How to add a prop to the last element of an array of jsx elements in React?
isActive
props for the last element in the array as true and rest as falseisActive
道具为真,rest 为假isActive
as true for the 1st Number
componentNumber
组件的isActive
为true Example例子
number[3]
having isActive
true and rest as falsenumber[3]
具有isActive
true和 rest 为 false please help stuck over this array manipulation:((请帮助解决这个数组操作:((
import React, { Component } from 'react'
class Numbers extends Component {
render() {
const correctGuesses = this.props.correctGuesses
let number = [<Number guess={'1-100'} key={0 + Math.random} isActive={true}/>]
for(let i=0 ; i < correctGuesses ; i++) {
number.push(<Number guess={`1-${i+2}00`} key={i} isActive={true}/>)
}
return (
<React.Fragment>
{number}
</React.Fragment>
)
}
}
If you want the last element to have isActive props true you can use this:如果您希望最后一个元素具有 isActive 道具,您可以使用:
Import React, { Component } from 'react'
class Numbers extends Component {
render() {
const correctGuesses = this.props.correctGuesses
let number
if(correctGuesses === 0) {
number = [<Number guess={`1-100`} key={Math.random} isActive={true}/>]
} else if (correctGuesses > 0) {
number = [<Number guess={`1-100`} key={Math.random} isActive={false}/>]
}
for(let i=0 ; i < correctGuesses ; i++) {
if(i === correctGuesses-1)
number.push(<Number guess={`1-${i+2}00`} key={i} isActive={true}/>)
else
number.push(<Number guess={`1-${i+2}00`} key={i} isActive={false}/>)
}
return (
<React.Fragment>
{number}
</React.Fragment>
)
}
}
Props are immutable once you assign them.一旦你分配了道具,它们就是不可变的。 One way would be to set the value to an object and then to set its children value on the go:
一种方法是将值设置为 object,然后在 go 上设置其子值:
import React, { Component } from 'react'
class Numbers extends Component {
render() {
const correctGuesses = this.props.correctGuesses;
let lastActive = {value: true};
let number = [<Number guess={'1-100'} key={0 + Math.random} isActive={lastActive}/>]
for(let i=0 ; i < correctGuesses ; i++) {
lastActive = {value: true};
number.push(<Number guess={`1-${i+2}00`} key={i} isActive={lastActive}/>)
}
lastActive.value = false;
return (
<React.Fragment>
{number}
</React.Fragment>
)
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.