React Native:onPress on component不起作用

时间:2016-07-13 21:27:07

标签: javascript react-native reactjs-flux

所以我在我的ReactJS应用程序中使用react-native-router-flux进行导航,但我在使用组件时遇到了困难。

例如,以下代码段在单击链接时按下一页即可完美运行。

export default class MainMenuPage extends Component {
  render() {
    return (
      <View>
        <Text>Main Menu</Text>
        <TouchableOpacity onPress={Actions.bookmarksPage}>
          <Text>Bookmarks</Text>
        </TouchableOpacity>
        <TouchableOpacity onPress={Actions.settingsPage}>
          <Text>Settings</Text>
        </TouchableOpacity>
      </View>
    );
  }
}

当您按下链接时,以下代码段没有任何反应。

export default class MainMenuPage extends Component {
  render() {
    return (
      <View>
        <Text>Main Menu</Text>
        <MenuButton name="Bookmarks" onPress={Actions.bookmarksPage} />
        <MenuButton name="Settings" onPress={Actions.settingsPage} />
      </View>
    );
  }
}

class MenuButton extends Component {
  render() {
    return(
      <TouchableOpacity>
        <Text>{this.props.name}</Text>
      </TouchableOpacity>
    );
  }
}

显然,第二个代码段更清晰。

1 个答案:

答案 0 :(得分:5)

您必须将onPress道具传递给TouchableOpacity

class MenuButton extends Component {
  render() {
    return(
      <TouchableOpacity onPress={this.props.onPress}>
        <Text>{this.props.name}</Text>
      </TouchableOpacity>
    );
  }
}