...
handleSubmit(e) {
e.preventDefault();
this.request(e.target);
this.setState({
...this.state,
currentState: {
...this.state.currentState,
submited: true
}
});
}
render() {
return (
<Items>
{ this.state.mailData.map((data, i) => {
return (
<ItemRow key={'row-' + i} onSubmit={this.handleSubmit}>
<ItemInput>
<input id={data.id} type="checkbox" />
<label htmlFor={data.id}></label>
</ItemInput>
<Item>
<input type="email" name="email" value={data.email} disabled/>
</Item>
<Item>
<input type="text" name="name" value={data.name} disabled/>
</Item>
<Item>
<p data-status={data.status}>{JSON.parse(data.status) ? 'Sent' : 'Unsent'}</p>
</Item>
{!data.status &&
<ButtonSend type="submit" onClick={this.handleClick}>Send</ButtonSend>
}
</ItemRow>
);
})
}
</Items>
);
}
при сабмите this.request(e.target) отрабатывает как нужно, но setState не срабатывает совсем.
handleSubmit = e => {
};
this.setState({
currentState: {
...this.state.currentState,
submited: true,
},
});
PS как я могу изменить состояние после возвращения request. В функции .then контекст this я получить не могу
this.request(e.target).then(() => {
this.setState({
currentState: {
...this.state.currentState,
submited: true
}
});
});
handleSubmit = async e => {
e.preventDefault();
await this.request(e.target);
this.setState({
currentState: {
...this.state.currentState,
submited: true
}
});
};