我的按钮无法更改另一个React Native组件中的状态

时间:2020-07-09 08:25:23

标签: react-native

为什么以下代码不起作用?在此测试中,我只是尝试单击按钮时显示组件Board的状态。但我收到TypeError:undefined不是对象。

var board = (<Board/>);

  return (

        <View>
          { board }
          <Button
             title="Press me"
             onPress={() => Alert.alert(board.state.lastRefresh)}
           />
        </View>
  );
};

Board组件具有以下构造函数:

  constructor(props) {
    super(props)

    this.state = {
      lastRefresh: Date(Date.now()).toString(),
    }
    ...

1 个答案:

答案 0 :(得分:0)

如果您的Board组件是这样的:

import PageTwo from 'PageTwo';

export default class Board extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            lastRefresh: Date(Date.now()).toString(),
        }
    }
    render() {
        return (
            <View>
                <PageTwo lastRefresh={this.state.lastRefresh}>
                </PageTwo>
            </View>
        )
    }
}

您可以通过以下方式从PageTwo组件中访问道具:

export default class PageTwo extends React.Component {

    render() {
        return (
            <View>
                <Button
                    title="Press me"
                    onPress={() => Alert.alert(this.props.lastRefresh)}
                />
            </View>
        )
    }
}