如何在对象中输入字符串数据?



我试图输入文本到innerState.feedType。但当我尝试的时候它说不能读取未定义的toString属性我如何修复我的代码?

这是我的代码

const [innerState, setInnerState] = useState<any>({
feedType: 'bbong', 
})

const onChangeEtcfeedtype = useCallback((text) => {
setInnerState( innerState['feedType'] = text)
},[]);
<TextInput
placeholder="input."
value={innerState.feedType}
onChangeText={onChangeEtcfeedtype}
/>

您需要添加空安全(?)操作符,因为状态在呈现组件后创建。还需要返回对象上的新链接来重新渲染组件。

const [innerState, setInnerState] = useState<any>({
feedType: 'bbong', 
})

const onChangeEtcfeedtype = (text) => {
setInnerState({...innerState, innerState.feedType: text});
};
<TextInput
placeholder="input."
value={innerState?.feedType}
onChangeText={onChangeEtcfeedtype}
/>

我认为这是你应该做的写出来。关于错误。看起来它不是来自这个部分。它来自您的<TextInput />组件,可能是因为您使用onChangeevent所做的事情。

const [innerState, setInnerState] = useState<any>({
feedType: 'bbong', 
})

const onChangeEtcfeedtype = useCallback((text) => {
setInnerState({feedType: text})
},[]);
<TextInput
placeholder="input."
value={innerState.feedType}
onChangeText={onChangeEtcfeedtype}
/>

请考虑阅读这些文章:

https://xyproblem.info/

https://stackoverflow.com/help/how-to-ask

这里,innerState['feedType'] = text你是直接改变状态,然后使用update函数存储它,你不应该直接改变它。

你有innerState这是一个对象,它包含feedType属性。所以,更新一个状态,你必须传递具有新值的相同键的对象。

正确方法:

setInnerState({feedType: text})

相关内容

  • 没有找到相关文章

最新更新