Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么forceUpdate没有';单击按钮后无法工作?_Javascript_Reactjs_Ag Grid_Ag Grid React - Fatal编程技术网

Javascript 为什么forceUpdate没有';单击按钮后无法工作?

Javascript 为什么forceUpdate没有';单击按钮后无法工作?,javascript,reactjs,ag-grid,ag-grid-react,Javascript,Reactjs,Ag Grid,Ag Grid React,我正在用ag agrid做一个小项目,我正在尝试翻译它 我的目标是当用户点击一个按钮时,它会改变语言,而要改变语言,页面必须刷新 单击按钮时: changeLanguage(lang) { this.setState({language: lang}, this.forceUpdate()); } 问题是: forceUpdate()不工作 渲染和施工人员: constructor(props) { super(props); this.state ={

我正在用ag agrid做一个小项目,我正在尝试翻译它

我的目标是当用户点击一个按钮时,它会改变语言,而要改变语言,页面必须刷新

单击按钮时:

changeLanguage(lang) {
    this.setState({language: lang},
    this.forceUpdate());
  }
问题是:

forceUpdate()不工作

渲染和施工人员:

constructor(props) {
    super(props);

    this.state ={
       language: 'pt'
    }

    this.changeLanguage = this.changeLanguage.bind(this);
}


render() {
  return (
<div className="ag-theme-balham" style={{ height: '700px', width: '95%' }}>

  <Row>
    <Button onClick={() => this.changeLanguage('pt')}> PT </Button>
    <Button onClick={() => this.changeLanguage('en')}> EN </Button>                
  </Row>

  <br/>

  <AgGridReact
     //props of grid
     localeText={this.state.language === 'pt' ? pt : en}

  />
</div>
);
}
构造函数(道具){
超级(道具);
这个州={
语言:“pt”
}
this.changeLanguage=this.changeLanguage.bind(this);
}
render(){
返回(
this.changeLanguage('pt')}>pt
this.changeLanguage('en')}>en


注意:pt和en是来自json文件的数据

您可以通过将
属性与
this.state.language
组合添加到
AgGridReact
组件而不是使用
this.forceUpdate()
来触发重新渲染。当您通过按钮单击更改语言时,这将导致重新渲染:

<AgGridReact
  key={this.state.language}
  ... other props
/>
正在运行

我看不到您的代码有任何问题,这似乎更像是网格组件无法更新的问题。您正在正确更新状态


希望这会有所帮助!

您可以通过将
属性与
this.state.language
组合添加到
AgGridReact
组件,而不是使用
this.forceUpdate()
来触发重新渲染。当您通过单击按钮更改语言时,应该会导致重新渲染:

<AgGridReact
  key={this.state.language}
  ... other props
/>
正在运行

我看不到您的代码有任何问题,这似乎更像是网格组件无法更新的问题。您正在正确更新状态


希望这会有帮助!

您在哪里使用
这个.state.language
?它是否被传递到
AgGridReact
?您如何知道
状态。语言没有被更新?请更新问题以准确显示您是如何使用
状态的。language
@AlexanderStaroselsky language处于这个组件的状态entRight,您表示除非更新页面,否则不会看到任何更新。您的代码不会显示任何地方正在使用或传递的
this.state.language
。请尝试了解您是如何确切地知道
this.state.language
没有被
this.setState({language:lang})更新的
以及为什么您觉得需要
forceUpdate()
。同样在您的示例中
this.setState({language:lang},
语法不正确,缺少结尾括号
逗号是额外的,但可能是复制/粘贴的error@AlexanderStaroselsky状态正在改变,我在控制台中看到,唯一不起作用的是forceUpdate,它不会重新渲染。你说
AgGridReact
this.state.language
值更新时不会重新渲染吗?你到底在哪里使用
>此.state.language
?是否正在将其传递给
AgGridReact
?您如何知道
状态。语言
未被更新?请更新问题以准确显示您是如何使用
状态的。语言
@AlexanderStaroselsky language处于此组件的状态。对,您表示没有看到任何updates,除非您更新页面。您的代码不会显示任何地方使用或传递的
this.state.language
。请尝试了解您是如何确切地知道
this.state.language
没有被
this.setState({language:lang})
更新的,以及您为什么感觉
forceUpdate()
是必需的。在您的示例中,
this.setState({language:lang},
语法不正确,缺少结尾括号
逗号是额外的,但可能是复制/粘贴的error@AlexanderStaroselsky状态正在更改,我在控制台中看到,唯一不起作用的是不重新渲染的forceUpdate。您说
AgGridReact
在更新此.state.language
值时不重新渲染吗?非常感谢您的帮助感谢您的时间!这是我搜索并尝试了许多其他方法解决此类问题后的正确工作答案…谢谢!非常感谢您的帮助和时间!这是我搜索并尝试了许多其他方法解决此类问题后的正确工作答案…谢谢!