1 回答

TA贡献1839条经验 获得超15个赞
渲染组件是同步的。如果你想做一些异步的事情,你的组件中需要一个状态变量。在第一次渲染时它将是空的,您可能会渲染一些占位符视图,例如加载微调器。然后你将开始异步的东西,当它完成时你设置状态使其再次呈现。
function NewButton({redirectId}){
const classes = useStyles();
const [someVar, setSomeVar] = useState(null);
useEffect(() => {
indexSearch(redirectId).then(result => {
setSomeVar(result);
})
}, [])
if (!someVar) {
return null;
}
return(
<Link as={`/details/${redirectId}`} href={`/details?objectId=${redirectId}`}>
<a>
<button type="button" className={classes.root}>
{`Learn more about the ${someVar}`}
</button>
</a>
</Link>
)
}
添加回答
举报