我想做什么?
通过 React Hooks渲染characterInfo到前端。
当前尝试执行此操作的代码是什么?
呈现信息的前端组件:
export default function ReactComponent() {
const [characterInfo, setCharacterInfo] = useState([]);
useEffect(() => {
socket.emit("/character/read");
socket.on("/character/read", function (data) {
if (data.status === "SUCCESS") {
setCharacterInfo(data)
}
});
return () => {
socket.off("/character/read");
};
}, []);
return (
<div>
{characterInfo.models[0].name}
</div>
)
}
后端.json信息作为“数据”以及保存到的characterInfo内容setCharacterInfo:
{
status: "SUCCESS"
models: [
{
name: "AC",
element: "Air",
}
{
name: "Irene",
element: "Fire",
}
]
}
(所以在这种情况下访问“AC”,它将是characterInfo.models[0].name)
我期望结果是什么?
我希望只是AC被渲染。
实际结果如何?
我会得到这个错误:
TypeError: Cannot read property '0' of undefined
我认为问题可能是什么?
我认为它必须处理异步平衡,尤其是useEffect(). 我认为前端会在setCharacterInfo决定设置任何内容之前尝试渲染。
桃花长相依
largeQ
相关分类