Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.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 当请求来自组件外部时,如何让React路由器加载相同的页面?_Reactjs_React Router - Fatal编程技术网

Reactjs 当请求来自组件外部时,如何让React路由器加载相同的页面?

Reactjs 当请求来自组件外部时,如何让React路由器加载相同的页面?,reactjs,react-router,Reactjs,React Router,我在页面顶部有一个导航组件,我的应用程序的各个“页面”在导航栏下面加载。有一个搜索组件可以在选择某个项目时打开视图“页面”,但如果视图页面已打开,则不会执行搜索导致的导航。因为这个导航栏(带有搜索组件)总是在屏幕上(并且可以从其他页面工作),所以我不想寻找“重新加载页面”的解决方案,因为这在任何其他页面上都是毫无意义的。我想知道如何告诉路由器它需要加载此页面,而不管它当前是否已加载。以下是我建议的解决方案。 因此,每当您导航到一个页面(我认为它是一个组件)时,broswer中的路径就会改变,这样

我在页面顶部有一个导航组件,我的应用程序的各个“页面”在导航栏下面加载。有一个搜索组件可以在选择某个项目时打开视图“页面”,但如果视图页面已打开,则不会执行搜索导致的导航。因为这个导航栏(带有搜索组件)总是在屏幕上(并且可以从其他页面工作),所以我不想寻找“重新加载页面”的解决方案,因为这在任何其他页面上都是毫无意义的。我想知道如何告诉路由器它需要加载此页面,而不管它当前是否已加载。

以下是我建议的解决方案。 因此,每当您导航到一个页面(我认为它是一个组件)时,broswer中的路径就会改变,这样您就可以呈现您的组件,类似这样

export function App() {
  return (
      <Router>
        <div>
          <Navbar />
          <Route exact path="/home" component={Home} />

          <Route exact path="/orders" component={Orders} />
          <Route exact path="/products/:id" component={View} />
          <Footer />
        </div>
      </Router>
    </Provider>
  );
这就是我要尝试做的

现在,如何将路径名传递给视图组件?? 为此,创建一条路径,该路径应以路径名为参数,然后该参数可以是查看组件的道具。类似于这样的内容(不是确切的代码)



你能举个例子,解释一下你到底有什么问题吗。恐怕问题的描述不是很清楚。您可以传递一个“key”参数,使每个路径都是唯一的。}/>@我已经准确地描述了我遇到的问题。你能告诉我什么地方不清楚,以便我能更好地解释吗?@Quasi_,但如果查看页面已经打开,则不会执行搜索导致的导航。因为这个导航栏(带有搜索组件)总是在屏幕上(并且从其他页面开始工作)。基本上,查看页面中到底发生了什么。@CodeOfLife导航栏允许我更改页面。它还有一个组件(搜索),将加载一个特定的页面——查看页面。当我导航到任何其他页面,然后使用搜索时,它会加载查看页面(显示我搜索过的记录的内容)。如果视图页面已经启动(因为我直接或通过以前的搜索导航到它),它不会加载视图页面,也不会加载我搜索过的记录的内容。
export function View(props){
const[Initial,setInitial]=useState();
setInitial(props.pathName)
//do some logic if the state changes;
}
<ViewRoute path={this.state.path}  component={View} />