Значение вводимого текста РЕАКТ - PullRequest
0 голосов
/ 06 марта 2020

как я могу установить значение моего поля ввода при нажатии кнопки. Когда я нажал кнопку, он сгенерирует строку и поместит ее в this.state.classCode.

В чем моя ошибка? заранее спасибо

this.handleGetCode =  this.handleGetCode.bind(this);

handleGetCode(event){
        const cryptoRandomString = require('crypto-random-string');

        let random = cryptoRandomString({length: 4});
        let randomUp = random.toUpperCase();
        let classcodes = this.state.classCode;
        this.setState({[event.target.name]: classcodes});
    }

<div className="col-md-12 m-b-15">
     <label className="control-label">Class Code<span className="text-danger">*</span></label>
     <input type="text" className="form-control" placeholder="Class Code" name="classCode" value={this.state.classCode} onChange={this.handleChange} required="" />
     <button onClick={this.handleGetCode}>Get Code</button>
</div>

1 Ответ

1 голос
/ 06 марта 2020

В соответствии с вашим состоянием mnet Когда я нажал кнопку, он сгенерирует строку и поместит ее в this.state.classCode , вы нигде не будете использовать вновь созданную строку. А также, предполагая, что у вас уже есть обработчик onChange, вы можете изменить handleGetCode () следующим образом

handleGetCode(event){
        const cryptoRandomString = require('crypto-random-string');
        let random = cryptoRandomString({length: 4});
        let randomUp = random.toUpperCase();
        this.setState({classCode: randomUp});
}
...