Reactjs 我应该在何处使用我的HOC中的useEffect,它在React中接收道具?
我有一个高阶函数: 它应该基于一些道具来渲染元素,我在条件句中使用这些道具来渲染元素Reactjs 我应该在何处使用我的HOC中的useEffect,它在React中接收道具?,reactjs,state,higher-order-functions,high-order-component,react-lifecycle-hooks,Reactjs,State,Higher Order Functions,High Order Component,React Lifecycle Hooks,我有一个高阶函数: 它应该基于一些道具来渲染元素,我在条件句中使用这些道具来渲染元素 function GenericIsUserLoggedInLink({ isLoggedIn, logOutUser, route, anchorText }) { if (isLoggedIn) { if (anchorText === undefined) { return <Link href="/"><a onClick={() => logOutUser()}&g
function GenericIsUserLoggedInLink({ isLoggedIn, logOutUser, route, anchorText }) {
if (isLoggedIn) {
if (anchorText === undefined) {
return <Link href="/"><a onClick={() => logOutUser()}>Log out!</a></Link>
} else if (anchorText) {
return <Link href={route}><a>{anchorText}</a></Link>
} else {
return null
}
} else {
return <Link href="/login"><a>Log in!</a></Link>
}
}
},[route]);}>{anchorText}
}否则{
返回空
}
}否则{
返回登录!
}
}
无论如何,我只是想了解一下为什么当您单击注销按钮时,其他导航链接也会显示登录…在您的导航中,您在左侧导航链接上使用您的HOC,包括您的链接“配置文件”和“仪表板”,在您的HOC中,主要条件是:
if (isLoggedIn) {
...
} else {
return <Link href="/login"><a>Log in!</a></Link>
}
if(isLoggedIn){
...
}否则{
返回登录!
}
因此,如果您没有登录(isLoggedin===false
),您将返回一个写有“登录!”的Link
,这就是渲染的内容,而不是您的导航链接。
这与提到的其他内容没有多大关系。在您的中,您在左侧导航链接上使用HOC,包括链接“配置文件”和“仪表板”,在HOC中,主要条件是:
if (isLoggedIn) {
...
} else {
return <Link href="/login"><a>Log in!</a></Link>
}
if(isLoggedIn){
...
}否则{
返回登录!
}
因此,如果您没有登录(isLoggedin===false
),您将返回一个写有“登录!”的Link
,这就是渲染的内容,而不是您的导航链接。
它与前面提到的任何事情都没有多大关系。它似乎完全按照你的要求去做,请详细说明你不是什么行为expecting@Drax啊,很抱歉,我在那里发疯了…我更新了问题。尝试在条件中为每个链接组件添加一个唯一的
键道具。它似乎完全按照您的要求执行,请详细说明你不是什么行为expecting@Drax啊,很抱歉,我已经更新了问题。请尝试将唯一的键
道具添加到条件中的每个链接组件中。