В React переменная, передаваемая через контекст, не изменяется у дочернего элемента при изменении в родительском. - PullRequest
0 голосов
/ 21 марта 2020

Я изучил это руководство https://reactjs.org/docs/context.html
И написал этот код

UserContext. js:

import React from 'react';
const UserContext = React.createContext();
export default UserContext;

Приложение. js:

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      id: '',
      name: ''
    };
  }
  componentDidMount() {
    this.getAccountData();
  }

  async getAccountData() {
    this.setState({
      id: 123,
      name: "Jacob"
    });
  }

  render() {
    return (
      <UserContext.Provider value={this.state}>
          <Account />
      </UserContext.Provider>
    );
  }
}

Account. js:

class Account extends React.Component {
  static contextType = UserContext;

  render() {
    return (
      <UserContext.Consumer>
      {user => (
      <div className="account">
          <p>{user.id} - {user.name}</p>
      </div>
      )}
      </UserContext.Consumer>
    )
  }
}

Переменная user.id остается пустой строкой! Я пытался вручную изменить this.context, но это также не работает, он делает копию по ходу дела. Кроме того, в документации ничего нет об этом. Что можно сделать или просто сделать весь проект одним файлом и не думать об этом?

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