跳到主要内容

状态

控制组件的两种数据是 propsstateprops 由父组件设置,并且在组件的生命周期内是固定的。对于会变化的数据,我们必须使用 state

通常,你应该在构造函数中初始化 state,然后在想要改变它的时候调用 setState

例如,假设我们想让文本一直闪烁。文本本身在创建闪烁组件时设置一次,所以文本本身是一个 prop。 “文本当前是开启还是关闭”会随着时间变化,所以这应该保存在 state 中。

在实际应用中,你可能不会用定时器来设置 state。你可能在从服务器获取新数据或用户输入时设置 state。你也可以使用像 ReduxMobX 这样的状态容器来控制你的数据流。在这种情况下,你会使用 Redux 或 MobX 来修改你的 state,而不是直接调用 setState

调用 setState 后,BlinkApp 将重新渲染其 Component。通过在 Timer 中调用 setState,组件将在 Timer 滴答的每一次都重新渲染。

State 的工作方式与 React 中的相同,因此有关处理 state 的更多详细信息,你可以查阅 React.Component API。到目前为止,你可能已经注意到我们的大部分示例都使用了默认的文本颜色。要自定义文本颜色,你将不得不 学习有关 Style 的知识