我创建了一个受控组件,将输入字段限制为仅 4 个数字。这些数字可以随时更改,任何时候数字是四位数我希望将结果传递给兄弟组件以执行操作。
我将值发送到父状态,然后重新渲染,兄弟姐妹获取值。但是我的组件也会重新渲染,并且输入字段会丢失值。
我是否应该将值发送给父级,让父级在每次输入更改时重新渲染?
还是使用上下文?
任何见解都会很棒,因为我是 React 新手。
const NumberComp = ({setPostcode})=>{
const [ fieldValue, setFieldValue ] = useState('')
useEffect(()=>{
if(fieldValue.length == 4){
setPostcode(fieldValue)
}
}, [fieldValue])
const updateNumber = (e)=>{
const value = e.target.value
if(value.length > 4 || isNaN(value)) return
setFieldValue(value)
}
return <input onChange={updateNumber} value={fieldValue} type="text" />
}