В зависимости от того, «одобряет» ли пользователь или отклоняет его, требуется другой обратный вызов отправки. В результате я установил переменную состояния submitCallBack для соответствующей функции в зависимости от того, что щелкнул пользователь. У меня такой вопрос: Могу ли я гарантировать, что будет установлен submitCallBack или произойдет повторный рендеринг перед завершением отправки? (поскольку setState isyn c)
В настоящее время это работает как «ожидаемый», но хотелось бы убедиться, что у меня не возникнет проблем при выпуске
Последовательность событий I должно произойти:
- Пользователь нажимает кнопку
- this.handleSubmit () вызывается с обратным вызовом
- submitCallBack установлен и форма повторно отображает
- событие отправки происходит , а handleSubmit установлен с правильным обратным вызовом
class FormClass extends React.Component {
constructor(props) {
super(props)
this.state = {
submitCallBack: () => {}
}
}
handleSubmit = callback => () => {
// this needs to be set before the submit completes and the forms callback function
// for onSubmit must be set to this new value
this.setState({ submitCallBack: callback })
}
render() {
const { error, invalid, submitting, handleSubmit, approve, decline } = this.props
return (
<form onSubmit={handleSubmit(this.state.submitCallBack)}>
<Button
type="submit"
onClick={this.handleSubmit(approve)}
primary
action
loading={submitting}
>
Approve
</Button>
<Button type="submit" onClick={this.handleSubmit(decline)}>
Reject
</Button>
</div>
</form>
)
}
}