Я пытаюсь отследить форму в this.state
с обработчиками событий на входах, но по какой-то причине this.state
сбрасывается обратно в состояние по умолчанию, когда обработчик событий пытается обновить его. Это пример того, как выглядит Компонент.
class ExampleReport extends React.Component {
constructor(props) {
super(props)
this.state = {
reportDetails: null,
report: this.props.report,
form: {}
}
this.textInputHandler = this.textInputHandler.bind(this)
}
textInputHandler(e) {
var reportForm = this.state.form;
var target = e.target;
var name = target.className;
var value = target.value;
reportForm[name] = value;
this.setState({ form: reportForm })
}
render(){
return(
<form>
<input className="example" type="text" onChange={(e) => {this.textInputHandler(e)}} />
</form>
)
}
}
До вызова textInputHandler
в this.state
хранятся объект и массив, но после вызова setState
они сбрасываются обратно по умолчанию в конструкторе. При последующих обновлениях текстовый ввод this.state.form
сохраняется, но все остальное сбрасывается. Как я могу предотвратить это?
ОБНОВЛЕНИЕ
Попробовав некоторые из предложенных ниже решений, я вернулся и зарегистрировал this.state
практически во всех возможных точках и обнаружил, что он сбрасывается даже до вызова setState()
во входном обработчике.