拳头我的代码看起来像这样
const customerInputHandler = (currentCustomer) => {
setCustomer(currentCustomer.nativeEvent.text);
};
在搜索互联网之后,我找到了一个解决方案,并在下面实现了此代码。我正在四处搜寻以尝试理解此代码,但无法。可以请一些我解释上面的错误并解释为什么这个解决方案可以解决所有问题
const customerInputHandler = (currentCustomer: {
nativeEvent: {text: React.SetStateAction<string>};
}) => {
setCustomer(currentCustomer.nativeEvent.text);
};
在typescript中,所有未赋予显式类型(编译器无法对其进行推断)的事物均被赋予type any
。这并不一定是错误-有时事情很难描述,或者可以合理地描述any
(例如,fetch
语句的结果)。在这些情况下,您需要标记类型明确 any
。注意:我认为您可以关闭此行为,以便隐式any
s有效(您不应这样做-否则,请使用javascript)
至于修复为何有效:您输入了currentCustomer
一个类型。具体来说,其类型为:
{
nativeEvent: {
text: React.SetStateAction<string>
}
}
因此,与该特定结构匹配的任何值都可以是该函数的参数。另一种选择是简单地使之any
明确。该代码大约是:
const customerInputHandler = (currentCustomer: any) => {
setCustomer(currentCustomer.nativeEvent.text);
};
尽管免责声明:我实际上尚未对此进行测试。再次,您将希望尽可能避免使用any
它,因为它会迅速散布到整个应用程序中,从而产生大量的打字稿问题。
您可能想要查看是否可以在项目中包括一些react native @types包,这可能是上述类型的简写。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句