相关疑难解决方法(0)

如何从子组件内部更新React Context?

我在上下文中有语言设置,如下所示

class LanguageProvider extends Component {
  static childContextTypes = {
    langConfig: PropTypes.object,
  };

  getChildContext() {
    return { langConfig: 'en' };
  }

  render() {
    return this.props.children;
  }
}

export default LanguageProvider;
Run Code Online (Sandbox Code Playgroud)

我的应用程序代码如下所示

<LanguageProvider>
  <App>
    <MyPage />
  </App>
</LanguageProvider>
Run Code Online (Sandbox Code Playgroud)

我的页面有一个用于切换语言的组件

<MyPage>
  <LanguageSwitcher/>
</MyPage>
Run Code Online (Sandbox Code Playgroud)

LanguageSwitcher 在此MyPage需要更新上下文以将语言更改为'jp',如下所示

class LanguageSwitcher extends Component {
  static contextTypes = {
    langConfig: PropTypes.object,
  };

  updateLanguage() {
    //Here I need to update the langConfig to 'jp' 
  }

  render() {
    return <button onClick={this.updateLanguage}>Change Language</button>;
  }
}

export default LanguageSwitcher; …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

32
推荐指数
4
解决办法
2万
查看次数

标签 统计

javascript ×1

reactjs ×1