当 API 没有该字段时的 setState

Posted

技术标签:

【中文标题】当 API 没有该字段时的 setState【英文标题】:setState when API is not having the field 【发布时间】:2021-05-22 08:54:15 【问题描述】:

我想为 API 调用时为空白的“付款”字段设置状态。在注册表单中未设置此数据,但在登录仪表板后,此数据将反映,用户可以选中复选框。

我收到错误:

TypeError:无法读取未定义的属性“付款”

如何做到这一点?

【问题讨论】:

【参考方案1】:

永远不要直接触摸和修改字段。始终使用状态来修改字段。在您的情况下使用 this.state = payment 并设置状态使用 this.setState = payment。 希望这行得通。

【讨论】:

我用三元运算符解决了。 payment.card = 付款 == 未定义? this.state.payment.card : payment.card == true ?真:假;

以上是关于当 API 没有该字段时的 setState的主要内容,如果未能解决你的问题,请参考以下文章

当setState Flutter时,PageViewer内的小部件没有改变

调用 setState 后 ReactJS 元素未更新

React 的setState 理解

使用立即需要该状态进行 API 调用的 useState 挂钩时,如何等待 setState 调用完成?

Swagger编写API文档的YAML中文示例

即使状态没有改变,为啥 setState 会导致太多的重新渲染错误