javascript - undefined 不是对象(评估“navigation.reset”)
问题描述
我在想我的代码是正确的,但事实证明它给了我未定义,但是当我单击一个按钮转到“列表”时;有用!只是我不能从 TouchableOpacity onPress 做到这一点。这是我的代码
import { StyleSheet, Text, View,TouchableOpacity } from 'react-native'
import {useSelector, useDispatch} from 'react-redux'
import {fetchDogsAsync} from '../store/action/index'
const DogsList = ({navigation}) => {
const dispatch = useDispatch()
const {dogs,isLoading} = useSelector(state => state)
useEffect(() => {
dispatch(fetchDogsAsync())
}, [dispatch])
console.log(dogs,isLoading);
return (
<View>
{
isLoading ? <Text>Loading...</Text> : (dogs?.message).map((dog,idx)=> {
return (
<TouchableOpacity key={dog} onPress={() => navigation.reset({
index: 0,
routes: [{name: 'List', params: {breed: dog}}],
})}><Text>{dog}</Text></TouchableOpacity>
)
})
}
</View>
)
}
export default DogsList
const styles = StyleSheet.create({})
解决方案
<Navigator.Screen
name="initial"
component={ListScreen}
options={{ title: "", headerShown: false }}
/>
只有 Screen 标签中使用的组件才会收到导航属性。这里 ListScreen 将收到导航道具。但是 ListScreen 的子组件不会收到导航道具。但是您可以在组件树中的任何位置使用 useNavigation 挂钩,这将为您提供导航对象。你可以在他们的官方文档中阅读更多关于它的信息。
推荐阅读
- regex - 在 Unix 中删除模式后的所有内容
- python - Pytest中如何控制增量测试用例
- reactjs - 如何从反应中的多个字段中获取相同输入类型的值?
- ruby-on-rails-3 - 如何将文件的二进制文件发送到参数并使用回形针数据库将其保存在数据库中
- python - 如何从 upcdatabase.org API (Python) 中获取特定数据
- javascript - 如何在 vue-tables-2 服务器端添加范围过滤器
- ios - 在 CocoaPod post_install 上获取 App-Target(s) 或 Appname
- android - 尝试重新打开一个已经关闭的对象 sqlite
- ios - 防止处理 PublishSubject (RxSwift)
- square-connect - 按日期检索客户数据