this.props.onPress 不是函数
this.props.onPress is not a function
我有一个 HomePage.js
,其中包含 关于我们 按钮,当我单击该按钮时,我想显示 AboutUs.js
。 HomePage.js
显示正确,但是,当我单击按钮时,出现以下错误:this.props.onPress 不是函数。 (在'this.props.onPress(e)'中,'this.props.onPress'是Object的一个实例)
我有App.js
import React, { Component } from 'react';
import { StackNavigator } from 'react-navigation';
import HomePage from './HomePage';
import AboutUs from './AboutUs';
const App = StackNavigator({
HomePage: {
screen: HomePage,
navigationOptions: {
header: () => null
}
},
AboutUs: {
screen: AboutUs,
navigationOptions: {
header: () => null
}
}
});
export default App;
然后我有一个可重用的组件Button.js
:
import React from 'react';
import { Text, TouchableOpacity } from 'react-native';
const Button = ({ onPress, children }) => {
return (
<TouchableOpacity onPress={onPress}>
<Text>{children}</Text>
</TouchableOpacity>
);
};
export { Button };
HomePage.js
正在呈现 Button 组件。当我按下它时,出现上述错误
import React, { Component } from 'react';
import { View, Text } from 'react-native';
import { Button } from './Button.js';
import AboutUs from './AboutUs';
class HomePage extends Component{
render() {
const { navigate } = this.props.navigation;
return(
<View>
<Button
onPress={() => navigate('AboutUs'), { name: 'About Us' }}
>About Us</Button>
</View>
)
}
}
export default HomePage;
AboutUs.js
import React, { Component } from 'react';
import { Text, View } from 'react-native';
class AboutUs extends Component {
render() {
return (
<View>
<Text>About us!</Text>
</View>
);
}
}
export default AboutUs;
这不是有效的函数引用
onPress={() => navigate('AboutUs'), { name: 'About Us' }}
好像你在函数 ref 中混淆了 { name: 'About Us' }
而不是作为 Button
的道具
我有一个类似的问题和同样的错误:"this.props.onPress is not a function"我犯的错误是使用:
onPress={this.props.incrementCount()}
正确的语法是:
onPress={ () => this.props.incrementCount()}
后者returns函数的结果。
对我来说,我错过了一个大括号
onPress={() => {navigate('AboutUs'), { name: 'About Us' }}}
我有一个 HomePage.js
,其中包含 关于我们 按钮,当我单击该按钮时,我想显示 AboutUs.js
。 HomePage.js
显示正确,但是,当我单击按钮时,出现以下错误:this.props.onPress 不是函数。 (在'this.props.onPress(e)'中,'this.props.onPress'是Object的一个实例)
我有App.js
import React, { Component } from 'react';
import { StackNavigator } from 'react-navigation';
import HomePage from './HomePage';
import AboutUs from './AboutUs';
const App = StackNavigator({
HomePage: {
screen: HomePage,
navigationOptions: {
header: () => null
}
},
AboutUs: {
screen: AboutUs,
navigationOptions: {
header: () => null
}
}
});
export default App;
然后我有一个可重用的组件Button.js
:
import React from 'react';
import { Text, TouchableOpacity } from 'react-native';
const Button = ({ onPress, children }) => {
return (
<TouchableOpacity onPress={onPress}>
<Text>{children}</Text>
</TouchableOpacity>
);
};
export { Button };
HomePage.js
正在呈现 Button 组件。当我按下它时,出现上述错误
import React, { Component } from 'react';
import { View, Text } from 'react-native';
import { Button } from './Button.js';
import AboutUs from './AboutUs';
class HomePage extends Component{
render() {
const { navigate } = this.props.navigation;
return(
<View>
<Button
onPress={() => navigate('AboutUs'), { name: 'About Us' }}
>About Us</Button>
</View>
)
}
}
export default HomePage;
AboutUs.js
import React, { Component } from 'react';
import { Text, View } from 'react-native';
class AboutUs extends Component {
render() {
return (
<View>
<Text>About us!</Text>
</View>
);
}
}
export default AboutUs;
这不是有效的函数引用
onPress={() => navigate('AboutUs'), { name: 'About Us' }}
好像你在函数 ref 中混淆了 { name: 'About Us' }
而不是作为 Button
我有一个类似的问题和同样的错误:"this.props.onPress is not a function"我犯的错误是使用:
onPress={this.props.incrementCount()}
正确的语法是:
onPress={ () => this.props.incrementCount()}
后者returns函数的结果。
对我来说,我错过了一个大括号
onPress={() => {navigate('AboutUs'), { name: 'About Us' }}}