6 javascript reactjs react-router
我正在尝试进行网站身份验证。我试图将道具传递给延迟加载模块,但突然遇到错误“未捕获(承诺)TypeError:w 不是函数”
我正在与 apollo 客户端一起使用 react,react 路由器和 graphql 查询完全正常工作,而且延迟组件的渲染也是如此,但我无法将 props 传递给延迟加载组件
// App.js
const SignIn = lazy(() => import('pages/signin'));
function App(props) {
// state to represent user signed in to the site
let [auth, setAuth] = useState(false);
function handleAuth (boolean) {
setAuth(boolean);
}
return (
<>
<main>
<Suspense fallback={<div>Loading...</div>}>
<Switch>
<Route exact path="/" component={HomePage} />
<Route
path="/signin"
auth={auth}
handleAuth={handleAuth}
render={props => (<SignIn {...props} /> )}
/>
Run Code Online (Sandbox Code Playgroud)
// signin.js
let auth = props.auth;
let handleAuth = props.handleAuth;
return (
<ApolloConsumer>
{client => {
return (
<>
<div className="signin-div">
<h1>Sign in</h1>
<form
onSubmit={async e => {
e.preventDefault();
const { data } = await client.query({
query: SIGNIN_ACCOUNT,
variables: { email, password }
});
if (data.signin) {
handleAuth(true);
}
}}
className="signin-form"
>
Run Code Online (Sandbox Code Playgroud)
我希望 handleAuth(true) 会完美地工作,但我认为 handleAuth(true) 不是函数。下面是错误消息“Uncaught (in promise) TypeError: w is not a function”
我应该如何将道具传递给延迟加载模块?
这里没有火箭科学只是将它的道具直接传递给登录组件,您单独发送道具的原因是因为这些道具是从那时收到的那些道具。
return (
<>
<main>
<Suspense fallback={<div>Loading...</div>}>
<Switch>
<Route exact path="/" component={HomePage} />
<Route
path="/signin"
auth={auth}
render={props => (<SignIn handleAuth={handleAuth} {...props} /> )}
/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7125 次 |
| 最近记录: |