Javascript 如果同时存在组件willreceiveprops和onSubmit,我们希望优先考虑onSubmit
当我按下表单上的按钮时,onSubmit起作用,但同时componentWillReceiveProps也起作用,componentWillReceiveProps中的setState优先 我想优先考虑onSubmit的设置状态,而不是componentWillReceiveProps,最好的方法是什么 如果你知道更多,请告诉我Javascript 如果同时存在组件willreceiveprops和onSubmit,我们希望优先考虑onSubmit,javascript,reactjs,Javascript,Reactjs,当我按下表单上的按钮时,onSubmit起作用,但同时componentWillReceiveProps也起作用,componentWillReceiveProps中的setState优先 我想优先考虑onSubmit的设置状态,而不是componentWillReceiveProps,最好的方法是什么 如果你知道更多,请告诉我 componentWillReceiveProps(nextProps) { this.setState({ title: ne
componentWillReceiveProps(nextProps) {
this.setState({
title: nextProps.title,
});
}
您可以使用
Hooks
const [title, setTitle] = useState()
const handleChangeTitle = e => {
setTitle(e.target.value)
}
const handleSubmit = event => {
alert(title)
event.preventDefault()
}
在render()中
标题:
别忘了导入它:import-React,{useState}来自'React'
是否仍要执行这两个命令?一个接一个?我想在按下onSubmit时禁用componentWillReceiveProps。您可能正在处理反模式。请参阅“一个常见的误解是,getDerivedStateFromProps和componentWillReceiveProps仅在props“更改”时调用。也许,在更新组件WillReceiveProps中的状态之前,您应该检查if(nextrops.title!==this.props.title)
。希望这有帮助。我正在使用onChange=(e)=>this.setState({[e.target.name]:e.target.value});
在输入时响应的不仅仅是标题。
const [title, setTitle] = useState()
const handleChangeTitle = e => {
setTitle(e.target.value)
}
const handleSubmit = event => {
alert(title)
event.preventDefault()
}
<form onSubmit={handleSubmit}>
Title:
<input
type="text"
value={title}
onChange={handleChangeTitle}
/>
</form>