此代码中出现“无效挂钩”错误:
import React, { useState, useEffect } from 'react'
import { useLocation, useHistory, Link } from 'react-router-dom'
import $ from 'jquery'
import '../stylesheet/pages/pages.landing.css'
import '../stylesheet/global.css'
export default function Landing() {
function useQuery() {
return new URLSearchParams(useLocation().search);
}
useEffect(() => {
alert('a')
}, [])
}
错误在useEffect行中,你们可以帮我吗?
在“我的路线”脚本上调用着陆:
import { BrowserRouter, Route, Switch } from 'react-router-dom';
import Landing from './pages/Landing';
export default function routes() {
return (
<BrowserRouter>
<Switch>
<Route path="/" exact children={Landing} />
</Switch>
</BrowserRouter>
)
}
答案 0 :(得分:3)
children
道具被称为作为常规函数 when you need to render,而不是组件-钩子只能存在于通过JSX语法创建的元素中,这些元素会转换为{{ 1}}。
虽然可以在内联React.createElement
道具中使用JSX语法调用Landing
,但仍可以:
children
使用component
道具会更合适:
children={() => <Landing />}