react-native - 使用 useState 钩子,但是 setter 函数在运行时未定义
问题描述
我useState
在我的 react-native 项目中使用钩子。我有一个屏幕可以呈现我的自定义组件,名为MyComponent
. state 的 setter 函数在MyComponent
的onSelected
回调中被调用。
import React, {useState} from 'react';
import MyComponent from './components/MyComponent'
const MyScreen=()=> {
...
const {parts, setParts} = useState(initialParts);
return (<View>
<MyComponent onSelected={()=> {
...
setParts(newParts)
}}/>
</View>)
}
...
MyComponent
看起来像这样,在 的onPress
回调中TouchableOpacity
,它调用了传入的onSelected
函数:
const MyComponent= ({onSelected})=> {
...
return (<TouchableOpacity onPress={()=>{
onSelected();
...
}}>
...
</TouchableOpacity>)
}
当我在 iOS 模拟器上运行我的应用程序时,屏幕显示,当我点击 MyComponent 时,我得到 error TypeError: setParts is not a function. (In setParts(newParts)), 'setParts' is undefined
。
为什么我会收到此错误?
解决方案
您在这里的解构似乎是错误的:
const {parts, setParts} = useState(initialParts);
不应该是这样的:
const [parts, setParts] = useState(initialParts);
?
推荐阅读
- c# - Xamarin Forms UWP 应用在发布商店文件后行为异常
- flutter - Flutter - 如何在传递值的同时从子级更改父级的主体小部件?
- ios - AppStoreConnect 订阅价格未显示
- laravel - Laravel 请求验证 required_if 有多个条件
- c# - 使用 gridview 字段中的按钮单击更新 SQL Server 表列
- azure - 是否可以将 Windows 事件日志纳入应用程序洞察力?
- java - 错误:找不到合适的方法添加(字符串,类
) - android - React Native CodePush 更新问题
- python - 在尝试接收 PyTorch 张量时争夺管道资源
- c# - 如何创建一系列事件操作