在另一个内部调用组件时获取未定义不是对象(评估 'navigation.push')
Getting undefined is not an object (evaluating 'navigation.push') when calling a component inside of another
这是我的组件:
function MyHeader({navigation}){
let cartPress = () => navigation.push("Cart");
return(
<View>
<TouchableOpacity onPress={cartPress}>
<Text>Cart</Text>
</TouchableOpacity>
</View>
);
}
export default MyHeader;
当我在以下组件中调用它时:
import React from 'react';
import MyHeader from "../MyHeader";
function MyScreen({navigation}){
return(
<View>
<MyHeader />
</View>
);
}
export default MyScreen;
我在 MyScreen 组件中收到以下错误:
TypeError: undefined is not an object (evaluating 'navigation.push').
然而,当我调用 MyHeader 组件中的内容而不调用 AppHeader 组件时,我没有收到该错误:
import React from 'react';
import MyHeader from "../MyHeader";
function MyScreen({navigation}){
let cartPress = () => navigation.push("Cart");
return(
<View>
<TouchableOpacity onPress={cartPress}>
<Text>Cart</Text>
</TouchableOpacity>
</View>
);
}
export default MyScreen;
问题是什么?
您没有将 navigation
属性 传递给 <MyHeader />
组件,尝试:<MyHeader navigation={navigation} />
这是我的组件:
function MyHeader({navigation}){
let cartPress = () => navigation.push("Cart");
return(
<View>
<TouchableOpacity onPress={cartPress}>
<Text>Cart</Text>
</TouchableOpacity>
</View>
);
}
export default MyHeader;
当我在以下组件中调用它时:
import React from 'react';
import MyHeader from "../MyHeader";
function MyScreen({navigation}){
return(
<View>
<MyHeader />
</View>
);
}
export default MyScreen;
我在 MyScreen 组件中收到以下错误:
TypeError: undefined is not an object (evaluating 'navigation.push').
然而,当我调用 MyHeader 组件中的内容而不调用 AppHeader 组件时,我没有收到该错误:
import React from 'react';
import MyHeader from "../MyHeader";
function MyScreen({navigation}){
let cartPress = () => navigation.push("Cart");
return(
<View>
<TouchableOpacity onPress={cartPress}>
<Text>Cart</Text>
</TouchableOpacity>
</View>
);
}
export default MyScreen;
问题是什么?
您没有将 navigation
属性 传递给 <MyHeader />
组件,尝试:<MyHeader navigation={navigation} />