【发布时间】:2020-10-16 19:12:54
【问题描述】:
我必须在组件渲染时填充对象,然后显示该信息。 现在我正在尝试这样做,但是有一个错误,我想是因为当我尝试渲染信息对象时仍然是空的。 我该如何解决这个问题?
console.log shows
{}
{}
{name: "Name"}
{name: "Name"}
export const UserCard: React.FC = () => {
let [mainInfo, setMainInfo] = useState({});
useEffect(() => {
setMainInfo({
name: "Name"
})
}, [])
console.log(mainInfo)
return (
<h1>{mainInfo.name}</h1>
);
};
【问题讨论】:
-
应该可以。你能分享你的整个代码还是把它放在沙箱里?
-
不确定您的确切用例,但如果您只想预设
mainInfo,您可以删除整个useEffect并将{name: "Name"}移动到useState({name: "Name"});。如果您的意思是错误是因为您还没有数据,那么您需要在渲染之前添加一个条件,例如if(mainInfo.name)。见React Conditional Rendering -
对不起,我没有说我使用打字稿可能因为它不起作用
-
也许:
<h1>{mainInfo.name || '' }</h1> -
不,不起作用(
标签: javascript reactjs typescript react-hooks