我试图通过 convert 函数传递更新的值以在每次状态更新时显示新结果,但似乎状态“const [values]”没有立即更新,我正在从以前的状态值中获取结果。因此,每次更改值时,我的结果都会落后一步。在控制台中,我可以看到我从输入中获取新值,但“值”状态显示以前的值。
const [values, setValues] = useState({
sqmtr: "",
sqft: "",
});
const handleTextChange = (text, name) => {
setValues({ ...values, [name]: text });
convert(unit, values);
console.log(text);
console.log(values);
};
<TextInput
style={styles.inputField}
defaultValue={values.sqmtr}
onChangeText={(text) =>
handleTextChange(text, "sqmtr")}
placeholder="0"
keyboardType={"numeric"}
/>
const handleTextChange = (text, name) => {
const value = { ...values, [name]: text }
// `setValues` is async. so use the value directly
setValues(value);
convert(unit, value);
console.log(text);
console.log(values);
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句