如何克隆状态变量以用作反应中的参考?
How to clone a state variable to use as a reference in react?
这个问题我找不到很好的答案,但我解决了;这是问题:
如果不在焦点中,我希望重置输入元素
type Props = {
inputRef: any;
value: string;
setValue: Function;
}
const inputField = (props: Props) => {
let tempValue = props.value;
return(
<input
ref= {props.inputRef}
onChange= {e =>
props.setValue(e.target.value);
}
value= {props.value}
onBlur={ () => {
props.setValue(tempValue);
}}
/>
)
}
但由于某种原因它没有清除值
p.s。 inputRef、value 和 setValue 是 hooks
const [value, setValue] = useState(...);
inputRef = useRef<HTMLInputElement>(null);
给定的方法不起作用,因为元素中的变量未使用 DOM 更新。
创建一个临时状态变量。
type Props = {
inputRef: any;
// value removed because it's not necessary
// setValue not necessary because value is no longer being changed, the
// value will be changed in a seperate method that's called in someway
// on the outer scope
}
const inputField = (props: Props) => {
const [value, setValue] = useState(""); // adding the useState hook here gives a inscope temp value
return(
<input
ref= {props.inputRef}
onChange= {e =>
setValue(e.target.value);
}
value= {value}
/>
)
它将设置为您调用该方法时初始化的任何值。您可以设置超出范围的动态默认值 (useState("")
-> useState(defaultValue)
)。此解决方案还允许 innerscope 值不影响输入所需的 outerscope 值,因此隔离输入字段并为某些 onSubmit(value: string)
超出范围的方法提供更多控制。
这个问题我找不到很好的答案,但我解决了;这是问题:
如果不在焦点中,我希望重置输入元素
type Props = {
inputRef: any;
value: string;
setValue: Function;
}
const inputField = (props: Props) => {
let tempValue = props.value;
return(
<input
ref= {props.inputRef}
onChange= {e =>
props.setValue(e.target.value);
}
value= {props.value}
onBlur={ () => {
props.setValue(tempValue);
}}
/>
)
}
但由于某种原因它没有清除值
p.s。 inputRef、value 和 setValue 是 hooks
const [value, setValue] = useState(...);
inputRef = useRef<HTMLInputElement>(null);
给定的方法不起作用,因为元素中的变量未使用 DOM 更新。
创建一个临时状态变量。
type Props = {
inputRef: any;
// value removed because it's not necessary
// setValue not necessary because value is no longer being changed, the
// value will be changed in a seperate method that's called in someway
// on the outer scope
}
const inputField = (props: Props) => {
const [value, setValue] = useState(""); // adding the useState hook here gives a inscope temp value
return(
<input
ref= {props.inputRef}
onChange= {e =>
setValue(e.target.value);
}
value= {value}
/>
)
它将设置为您调用该方法时初始化的任何值。您可以设置超出范围的动态默认值 (useState("")
-> useState(defaultValue)
)。此解决方案还允许 innerscope 值不影响输入所需的 outerscope 值,因此隔离输入字段并为某些 onSubmit(value: string)
超出范围的方法提供更多控制。