【发布时间】:2020-05-16 13:37:41
【问题描述】:
我正在尝试使用钩子创建一个基本的react 功能组件。
import React, { useState, useEffect } from 'react';
import Header from 'test-header';
import Dashboard from 'test-dashboard';
import { api } from '../api';
function storeUser(user) {
if (user) {
localStorage.user = JSON.stringify(user);
} else {
delete localStorage.user;
}
}
async function login() {
const [error, setError] = useState([]);
const [user, setUser] = useState([]);
try {
const user = await api({
endpoint: 'identity/login',
method: 'POST',
json: {
email: 'test@abc.com',
password: '12345'
}
});
setUser(user);
storeUser(user);
} catch (err) {
setError(err);
}
}
function Container() {
return (
<div>
<Header />
<input type="submit" value="Login" onClick={login}></input>
{/* if user sets in state then render <Dashboard /> else render error message */}
</div>
);
}
export default Container;
在这里,test-header 组件发布为npm 包工作正常。当我单击Login 按钮时,我收到此错误:
react-dom.development.js?61bb:16178 未捕获(承诺)错误: 无效的挂钩调用。 Hooks 只能在 a 的主体内部调用 功能组件。
我如何检查user 是否已设置为状态,并基于带有react-hooks 的渲染Dashboard 组件?
【问题讨论】:
标签: javascript reactjs react-hooks