Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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
Javascript 反应未处理的拒绝(不变违反)_Javascript_Reactjs - Fatal编程技术网

Javascript 反应未处理的拒绝(不变违反)

Javascript 反应未处理的拒绝(不变违反),javascript,reactjs,Javascript,Reactjs,我的React模板中的身份验证有一些问题。 当我登录它的工作是好的,但当我注销时,我收到这样的消息 未处理的拒绝(不变冲突):元素类型无效: 应为字符串(用于内置组件)或类/函数(用于 复合组件),但得到:对象 检查Route的渲染方法 下面是我的代码的样子 const Dashboard = ({ match, isAuthenticated }) => ( <Col span={24}> <Menu mode="hori

我的React模板中的身份验证有一些问题。 当我登录它的工作是好的,但当我注销时,我收到这样的消息

未处理的拒绝(不变冲突):元素类型无效: 应为字符串(用于内置组件)或类/函数(用于 复合组件),但得到:对象

检查
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" />} />