Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 我应该在何处使用我的HOC中的useEffect,它在React中接收道具?_Reactjs_State_Higher Order Functions_High Order Component_React Lifecycle Hooks - Fatal编程技术网

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啊,很抱歉,我已经更新了问题。请尝试将唯一的
道具添加到条件中的每个链接组件中。