网站搜索

javascript - 如何在 Typescript 和 React.js 中解析具有随机字段的 JSON


在 Typescript 中有一个包含随机字段的 Json string(我不知道 json string 内部有什么样的字段或它们的类型)。想将 json string 解析为对象,并为字段设置默认类型,例如 string。

像这样解析:let values=JSON.parse(this.props.values!)

在使用 React.js 时出现错误,因为类型为 unknown。也不能预先定义 interface,因为我不知道 json string 内部是什么

Object.entries(values).map(([key, value]) => {
                renderValues = (
                    <>
                        <div className="col-1 text-left p-2" ></div>
                        <div className="col-2 text-right p-2" >{key}</div>
                        <div className="col-9 text-left p-2" >{value}</div>
                    </>)
            })

发生错误:类型 'unknown' 不能分配给类型 'ReactNode'。类型 'unknown' 不能分配给类型 'ReactPortal'。ts(2322) index.d.ts(1244, 9):预期类型来自此处在类型 'DetailedHTMLProps, HTMLDivElement>' 上声明的属性 'children'

在 TypeScript 中,当将 json 字符串 解析为对象时,如何为对象字段提供默认类型或将对象字段强制转换为默认类型?

答案#1

如评论所述;你能试试以下方法吗:

renderValues = Object.entries(values).map(
  ([key: string, value: string]) => (
    <>
      <div className="col-1 text-left p-2"></div>
      <div className="col-2 text-right p-2">{key}</div>
      <div className="col-9 text-left p-2">{value}</div>
    </>
  )
);

请阅读我之前发布的链接,因为你没有正确使用 Array.prototype.map。

相关文章