首页 > 解决方案 > 如何在 React 中向 jsx 元素数组的最后一个元素添加道具?

问题描述

例子

请帮助解决这个数组操作:((

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>
        )
    }
}

标签: javascriptreactjs

解决方案


如果您希望最后一个元素具有 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>
        )
    }
}

推荐阅读