Генерация уникальных идентификаторов и узлов элементов JSX - React

Сейчас у меня небольшая головная боль. Я создаю платформу для викторин с помощью React, и в настоящее время у меня есть компонент вопросов, который использует, где внутри вы можете добавить столько, сколько захотите. Однако я хочу, чтобы эти ответы имели уникальный идентификатор, когда я отправляю тест на сервер (еще не так далеко).

Когда я пытаюсь использовать {this.props.qNo}, я получаю сообщение об ошибке: "this: this '...' ожидал ts(1005)"

Кто-нибудь может сказать мне, что я делаю не так? Наверное, что-то глупое представляю!

Отдельные компоненты ответа

import React from 'react';

class AnswerText extends React.Component {
    constructor(props){
        super(props);
    }



    render(){
        return (
            <div className="input">
                <label htmlFor="answer1">Answer {this.props.qNo}</label>
                <input name="answer1" type="text" id="answer"{this.props.qNo}></input>
                <input type="checkbox" name="answerCheck" id="answerCheck" ></input>
            </div>
        )
    }
}
export default AnswerText;

Код AddTextQuestion

import React from 'react';
import '../css/addQuestion.css';
import AnswerText from './answerText.js';

class AddTextQuestion extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            noAnswers: 0
        }
        this.addAnswer = this.addAnswer.bind(this);
    }

    addAnswer(){
        this.setState({
            noAnswers: this.state.noAnswers + 1
        })
    }

    render(){

        let answers = [];
        for(let i = 0; i < this.state.noAnswers; i++){
            answers.push(<AnswerText key={i} qNo={i + 1} />)
        }

        return (
        <div className="qContainer">

            <form className="addQForm">
                <div className="questionContainer containers">
                        <h3 className="qNo">Question {this.props.qNo}</h3>
                        <div className="input">
                            <label htmlFor="question">Question</label>
                            <input name="question" type="text" id="question"></input>
                        </div>
                </div>
              
                <div className="answerContainer containers">
                    <button type="button" onClick={this.addAnswer}><i className="material-icons">add</i> Answer</button>
                    {answers}
                </div>
            </form>
        </div>
        );
    }
}

export default AddTextQuestion;

Кто-нибудь может помочь?

Спасибо

1 ответ

Я думаю, что ты хочешь сделать, это

 <input name="answer1" type="text" id={`answer${this.props.qNo}`}></input>

Возможно ли, что id="answer"{this.props.qNo} все скидывает?

Другие вопросы по тегам