rabbbit
258 天前
试着研究了一下,这样倒是不会更新,不过感觉好麻烦
import React,{ useState, memo } from 'react';
function MyInput(props) {
return (
<input value={props.value} onInput={(e) => {
props.onInput(e.target.value)
}} />
)
}
function MyInputB(props) {
return (
<input value={props.value} onInput={(e) => {
props.onInput(e.target.value)
}} />
)
}
const InputBMemo = memo(({value, onInput}) => {
return <MyInputB value={value} onInput={onInput}/>
},(oldProps, newProps) => oldProps.value === newProps.value)
export function App(props) {
const [inputValue, setInputValue] = useState({
a: 1,
b: 2
})
return (
<div className='App'>
<MyInput value={inputValue.a} onInput={(value) => {
setInputValue({
...inputValue,
a: value
})
}}/>
<InputBMemo value={inputValue.b} onInput={(value) => {
setInputValue({
...inputValue,
b: value
})
}}/>
</div>
);
}