无法显示更新状态(REACT-NATIVE)

时间:2018-06-18 07:23:43

标签: javascript reactjs react-native

我想在我的应用程序的侧边栏中显示更新的州名,我的功能正常,因为我可以在控制台中看到名称PRINTED两次但由于某种原因我无法在应用程序屏幕上显示名称值(显示起始值) ""),我想我可能会使用错误的生命周期方法,有人可以帮助我吗?

SELECT '{ "a": 1, "b": 2, "c": 3 }'::jsonb - '{a,b}'::text[];
 ?column? 
----------
 {"c": 3}
(1 row)

4 个答案:

答案 0 :(得分:1)

this.state.name.value = this.props.User.userData

请勿直接改变您的状态,因为它不会重新渲染组件,而是使用setState方法,如下所示

this.setState({ name: this.props.User.userData });

答案 1 :(得分:0)

来自react-bits

的引用
  

避免在componentWillMount()

中进行异步初始化      

在安装发生之前立即调用componentWillMount()。它   在render()之前调用,因此在此方法中设置状态   不会触发重新渲染。避免引入任何副作用或   订阅此方法。

componentWillMount替换为componentDidMount。应该工作

答案 2 :(得分:0)

您使用的this.state.name.value不正确。它设置状态但实际上并不会导致组件重新呈现自身。相反,您需要使用setState方法来更改状态的值。这将调用在状态更改后重新呈现组件。 该方法的例子是

this.setState({ name: this.propos.User.userData });

虽然这种方法有效,但不建议改变状态值。根据准则,各国需要被视为不可改变的。

答案 3 :(得分:0)

componentWillMount与构造函数没有多大差别 - 它也仅在初始安装生命周期中调用一次。许多人会试图使用此函数来发送获取数据的请求,并期望在初始渲染准备好之前数据可用。事实并非如此 - 虽然请求将在渲染之前初始化,但在调用渲染之前它将无法完成。

在这种情况下,

this.setState可以解决问题。