Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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 为什么我能';t访问url localhost:9000/dummyTable?_Javascript_Reactjs_React Router - Fatal编程技术网

Javascript 为什么我能';t访问url localhost:9000/dummyTable?

Javascript 为什么我能';t访问url localhost:9000/dummyTable?,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我的路由器有问题。我有三个标签。当我在URL中单击它时,我得到了localhost:9000/dummyTable,localhost:9000/dummyChart。但是当我尝试在localhost之后编写/dummyTable时,出现了一个错误无法获取/dummyTable。我错过了什么?有人能帮我解决这个问题吗 const getTabsTitlesInOrder = () => { for(var i = 0; i <tabsJson.tabs.length; i +

我的路由器有问题。我有三个标签。当我在URL中单击它时,我得到了localhost:9000/dummyTable,localhost:9000/dummyChart。但是当我尝试在localhost之后编写
/dummyTable
时,出现了一个错误
无法获取/dummyTable
。我错过了什么?有人能帮我解决这个问题吗

const getTabsTitlesInOrder = () => {
    for(var i = 0; i <tabsJson.tabs.length; i ++){
        switch(tabsJson.tabs[i].order){
            case 0:
                firstTabTitle = tabsJson.tabs[i].title;
                getFirstTabContent(firstTabTitle);
                break;
            case 1:
                secondTabTitle = tabsJson.tabs[i].title;
                getSecondTabContent(secondTabTitle);
                break;
            case 2:
                thirdTabTitle = tabsJson.tabs[i].title;
                getThirdTabContent(thirdTabTitle);
                break;
        }
    }
};

const getFirstTabContent = (firstTabTitle) => {
    switch (firstTabTitle) {
        case "Dummy Table":
            firstTabContent = DummyTable;
            firstTabPath = "/";
            break;
        case "Dummy Chart":
            firstTabContent = DummyChart;
            firstTabPath = "/";
            break;
        case "Dummy List":
            firstTabContent = DummyList;
            firstTabPath = "/";
            break;
    }
};

const getSecondTabContent = (secondTabTitle) => {
    switch (secondTabTitle) {
        case "Dummy Table":
            secondTabContent = DummyTable;
            secondTabPath = "/dummyTable";
            break;
        case "Dummy Chart":
            secondTabContent = DummyChart;
            secondTabPath = "/dummyChart";
            break;
        case "Dummy List":
            secondTabContent = DummyList;
            secondTabPath = "/dummyList";
            break;
    }
};

const getThirdTabContent = (thirdTabTitle) => {
    switch (thirdTabTitle) {
        case "Dummy Table":
            thirdTabContent = DummyTable;
            thirdTabPath = "/dummyTable";
            break;
        case "Dummy Chart":
            thirdTabContent = DummyChart;
            thirdTabPath = "/dummyChart";
            break;
        case "Dummy List":
            thirdTabContent = DummyList;
            thirdTabPath = "/dummyList";
            break;
    }
};

class TabContent extends React.Component{
    render() {
        return(
            <Switch>
                <Route exact path={firstTabPath} component={firstTabContent}/>
                <Route path={secondTabPath} component={secondTabContent}/>
                <Route path={thirdTabPath} component={thirdTabContent}/>
            </Switch>
        );
    }
};

class TabButtons extends React.Component{
    render() { 
        getTabsTitlesInOrder();
        return(
            <div className="tabTitleWrapper">
                <div className="tabTitle">
                    <Link className="tabLink" to={firstTabPath}>
                        {firstTabTitle}
                    </Link>
                </div>
                <div className="tabTitle">
                    <Link className="tabLink" to={secondTabPath}>
                        {secondTabTitle}
                    </Link>
                </div>
                <div className="tabTitle">
                    <Link className="tabLink" to={thirdTabPath}>
                        {thirdTabTitle}
                    </Link>
                </div>
            </div>
        );
    }
};

class App extends React.Component{
    render() { 
        return(
            <div>
                <TabButtons />
                <TabContent />
            </div>
        );
    }
};

ReactDOM.render((
    <BrowserRouter>
        <App />
    </BrowserRouter>),
    document.getElementById('tab')
);
const getTaxtitleSinorder=()=>{
对于(var i=0;i{
开关(firstTabTitle){
案例“虚拟表”:
firstTabContent=DummyTable;
firstTabPath=“/”;
打破
案例“虚拟图表”:
firstTabContent=DummyChart;
firstTabPath=“/”;
打破
案例“虚拟列表”:
firstTabContent=DummyList;
firstTabPath=“/”;
打破
}
};
const getSecondTabContent=(secondTabTitle)=>{
开关(第二个选项卡标题){
案例“虚拟表”:
secondTabContent=DummyTable;
secondTabPath=“/dummyTable”;
打破
案例“虚拟图表”:
secondTabContent=DummyChart;
secondTabPath=“/dummyChart”;
打破
案例“虚拟列表”:
第二个tabcontent=DummyList;
secondTabPath=“/dummyList”;
打破
}
};
const getThirdTabContent=(thirdTabTitle)=>{
开关(第三个选项卡标题){
案例“虚拟表”:
thirdTabContent=DummyTable;
thirdTabPath=“/dummyTable”;
打破
案例“虚拟图表”:
thirdTabContent=DummyChart;
thirdTabPath=“/dummyChart”;
打破
案例“虚拟列表”:
thirdTabContent=DummyList;
thirdTabPath=“/dummyList”;
打破
}
};
类TabContent扩展了React.Component{
render(){
返回(
);
}
};
类TabButtons扩展React.Component{
render(){
getStuditleSinorder();
返回(
{firstTabTitle}
{secondTabTitle}
{thirdTabTitle}
);
}
};
类应用程序扩展了React.Component{
render(){
返回(
);
}
};
ReactDOM.render((
),
document.getElementById('tab')
);

要解决Web包中的此路由问题,您需要将其添加到配置对象中:

devServer: {
  port: 9000,
  historyApiFallback: {
    index: 'index.html'
  }
}

当您使用链接组件时,它会使浏览器执行客户端导航。但是当您尝试手动写入url时,您的服务器会收到对“/dummyTable”的请求,并且必须返回一些内容。我的意思是,这可能是服务器端的问题,而不是客户端的问题。您应该将所有浏览器请求重定向到index.html,以便正常工作你在使用NGINX、Apache还是Webpack?我在使用Webpack。你有没有研究过客户端和服务器端的路由(godsenal说了什么)?你必须在后端处理客户端的反应路由,这是一个包罗万象的问题。这种问题在这里和其他地方已经被回答了一百万次,谷歌it