提问人:Nancy Moore 提问时间:10/18/2023 最后编辑:Jim G.Nancy Moore 更新时间:10/18/2023 访问量:31
如何正确显示 JSON 记录
how to properly display json records
问:
编码部分有效。
我正在尝试通过 reactjs 从 Atlassian 实例获取记录。跟{codes ? JSON.stringify(codes) : 'Loading record'}
我可以按如下方式获得记录
[{"value":{"idx":"100","name":"php"},"key":"mykey"}]
这是我的问题:当我决定按照下面的代码映射记录时,我在浏览器控制台中看到错误
**TypeError: M is null
Qd App.js:**
{codes.map(code => (
<div>
<b>{code.value.idx}</b><br/>
<b>{code.value.name}</b><br/>
</div>
))}
{codes.length === 0 && <div>No Record Found</div>}
这是完整的代码
App.js
import React, { useEffect, useState, Fragment } from "react";
function App() {
const [codes, setCodes] = useState(null);
useEffect(() => {
invoke('mymethod').then(setCodes);
}, []);
return (
<div>
<h2> Display Codes Data</h2>
{codes.map(code => (
<div>
<b>{code.value.idx}</b><br/>
<b>{code.value.name}</b><br/>
</div>
))}
{codes.length === 0 && <div>No Record Found</div>}
{codes ? JSON.stringify(codes) : 'Loading record'}
</div>
);
}
export default App;
索引.js
import Resolver from '@forge/resolver';
import api, { route } from "@forge/api";
const resolver = new Resolver();
resolver.define('mymethod', async (req) => {
const res = await storage.query().where('key', startsWith('mykey')).limit(20).getMany();
console.log(res);
return res.results;
});
export const handler = resolver.getDefinitions();
答:
1赞
Phil
10/18/2023
#1
const [codes, setCodes] = useState(null);
在这里,最初是第一次渲染时是这样,会抛出错误。codes
null
codes.map()
codes.length
尝试将状态初始化为空数组...
const [code, setCodes] = useState([]);
或
安全地调用和使用可选链接.map()
.length
{codes?.map(code => (
<div key={code.key}>
<b>{code.value.idx}</b><br/>
<b>{code.value.name}</b><br/>
</div>
))}
{!codes?.length && <div>No Record Found</div>}
我的偏好是第一个选项,因为这意味着您不必担心任何地方的可能值。null
上一个:推送返回的 Null 值
评论