Javascript 反应未处理的拒绝(不变违反)
我的React模板中的身份验证有一些问题。 当我登录它的工作是好的,但当我注销时,我收到这样的消息 未处理的拒绝(不变冲突):元素类型无效: 应为字符串(用于内置组件)或类/函数(用于 复合组件),但得到:对象 检查Javascript 反应未处理的拒绝(不变违反),javascript,reactjs,Javascript,Reactjs,我的React模板中的身份验证有一些问题。 当我登录它的工作是好的,但当我注销时,我收到这样的消息 未处理的拒绝(不变冲突):元素类型无效: 应为字符串(用于内置组件)或类/函数(用于 复合组件),但得到:对象 检查Route的渲染方法 下面是我的代码的样子 const Dashboard = ({ match, isAuthenticated }) => ( <Col span={24}> <Menu mode="hori
Route
的渲染方法
下面是我的代码的样子
const Dashboard = ({ match, isAuthenticated }) => (
<Col span={24}>
<Menu
mode="horizontal"
>
<Menu.Item key="News">
<Link to="./News"><i className="icon icon-alert gx-text-white" /> News</Link>
</Menu.Item>
<Menu.Item key="Servers">
<Link to="./Servers"><i className="icon icon-widgets gx-text-white" />Servers</Link>
</Menu.Item>
<Menu.Item key="Billing">
<Link to="./Billing"><i className="icon icon-pricing-table gx-text-white" />Billing</Link>
</Menu.Item>
<Menu.Item key="Support">
<Link to="./Support"><i className="icon icon-chat-bubble gx-text-white" />Support</Link>
</Menu.Item>
<Menu.Item key="Logs">
<Link to="./Logs"><i className="icon icon-plain-list-divider gx-text-white" />Activity Logs</Link>
</Menu.Item>
</Menu>
<Switch>
<Redirect exact from={`${match.url}/`} to={`${match.url}/News`} />
<Route path={`${match.url}/servers`}
component={isAuthenticated ? asyncComponent(() => import('./Servers')) :
<Redirect to="/home" />} />
</Switch >
</Col>
);
const mapStateToProps = state => {
return {
isAuthenticated: state.auth.token !== null
};
};
export default connect(mapStateToProps, null)(Dashboard);
const Dashboard=({match,isAuthenticated})=>(
消息
服务器
演员表
支持
活动日志
导入('./服务器'):
} />
);
常量mapStateToProps=状态=>{
返回{
isAuthenticated:state.auth.token!==null
};
};
导出默认连接(MapStateTops,null)(仪表板);
导入('./服务器'))
: } />
这可能是无效的,您的
将立即在渲染中进行评估
,其结果将提供给组件
,而不是实际的重定向组件
您可以尝试将其更改为()=>
通过这种方式,您基本上为组件提供了一个“内联SFC”
,只有当被验证时路由实际呈现时才会对其进行评估。谢谢!
这就是有效的代码
<Route path={`${match.url}/news`}
component={isAuthenticated
? asyncComponent(() => import('./News'))
: () => <Redirect to="/home" />} />
import('./News'))
: () => } />
试试这个组件={()=>isAuthenticated?异步组件(()=>import('./Servers'):}
<Route path={`${match.url}/news`}
component={isAuthenticated
? asyncComponent(() => import('./News'))
: () => <Redirect to="/home" />} />