моя кнопка не может изменить состояние в другом собственном компоненте реакции - PullRequest
1 голос
/ 09 июля 2020

Почему не работает следующий код? В этом тесте я просто пытаюсь показать состояние компонента 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 голосов
/ 09 июля 2020

Если ваш компонент 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>
        )
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...