如何使用带有react-redux的react-router-dom v6.0.0渲染不同的组件

苏丹

我试图通过单击链接来呈现不同的组件,但是问题是url更新和ui保持不变,每次我单击不同的项进行呈现但发生相同的事情时,我都尝试了很多修复,但是我可以找不到解决方案。

index.js开始作为入口点

import { StrictMode } from "react";
import ReactDOM from "react-dom";
import store from "./Components/store";
import { Provider } from "react-redux";
import "./index.css";
import { BrowserRouter } from "react-router-dom";
import App from "./App";

const rootElement = document.getElementById("root");
ReactDOM.render(
  <StrictMode>
    <Provider store={store}>
      <BrowserRouter>
        <App />
      </BrowserRouter>
    </Provider>
  </StrictMode>,
  rootElement
);

然后是App.js来呈现组件

import "./App.css";
import { Routes, Route } from "react-router-dom";
import { SingleTodoPage } from "./Components/SingleTodoPage";
import { EditTodo } from "./Components/EditTodo";
import { Home } from "./Components/Home";

function App() {
  return (
    <Routes>
      <div>
        <div className="header-text">Todo List</div>
        <div className="box">
          <Route path="/" element={<Home />} />
          <Route path="todo/:todoId" element={<SingleTodoPage />} />
          <Route path="edit/:todoId" element={<EditTodo />} />
        </div>
      </div>
    </Routes>
  );
}

export default App;

SingleTodo,用于链接不同的组件

<SingleTodo />

<List>
        {todos.map((todo) => (
          <ListItem key={todo.id} className={classes.listRoot}>
            <ListItemText primary={todo.name} />
            <ListItemSecondaryAction>
              <CheckBoxIcon color="primary" />
              <DeleteIcon color="secondary" />
              <Link to={`edit/${todo.id}`} className="button">
                <EditIcon />
              </Link>
              <Link to={`todo/${todo.id}`}>view</Link>
            </ListItemSecondaryAction>
          </ListItem>
        ))}
      </List>

codesandbox更多的细节,我使用useParamsSingleTodoEditTodo获得动态网址参数。请如果有人知道如何解决这个问题,请帮助我...谢谢

德鲁·里斯(Drew Reese)

将非路由相关元素移出Routes组件。

function App() {
  return (
    <Routes>
      <div>
        <div className="header-text">Todo List</div>
        <div className="box">
          <Route path="/" element={<Home />} />
          <Route path="todo/:todoId" element={<SingleTodoPage />} />
          <Route path="edit/:todoId" element={<EditTodo />} />
        </div>
      </div>
    </Routes>
  );
}

对此

function App() {
  return (
    <div>
      <div className="header-text">Todo List</div>
      <div className="box">
        <Routes>
          <Route path="/" element={<Home />} />
          <Route path="todo/:todoId" element={<SingleTodoPage />} />
          <Route path="edit/:todoId" element={<EditTodo />} />
        </Routes>
      </div>
    </div>
  );
}

Routes组件在很大程度上充当了react-router-dom v4 / 5Switch组件的替代品

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React-router-dom v6,URL更改但组件未呈现

来自分类Dev

React-router-dom v6,URL更改但组件未呈现

来自分类Dev

React-router-dom v6,URL更改但组件未呈现

来自分类Dev

如何在react-router-dom v6中返回上一条路由

来自分类Dev

使用React Router V6实施受保护的路由

来自分类Dev

React Navigation Router V6无效的挂钩调用

来自分类Dev

如何使用React Router v6将参数传递给链接?

来自分类Dev

用户登录后如何使用React Router渲染不同的组件

来自分类Dev

使用带有redux的react-native-router-flux,如何更新视图组件中的状态?

来自分类Dev

如何使用react-router-dom添加将渲染组件的路由?

来自分类Dev

如何使用react-intl,react-router-dom v4和TypeScript对React组件进行单元测试

来自分类Dev

使用 React Router 渲染组件和 Redux 崩溃

来自分类Dev

查看不会更新,但URL在React Router V6中会显示

来自分类Dev

是否有任何方法可以在单击按钮时使用React Router v6打开页面

来自分类Dev

如何使用带有typescript的react router dom导航到新页面

来自分类Dev

React-router-dom v4 路由以及如何在子组件内部显示

来自分类Dev

无法使用 switch 语句渲染路由 React router dom 5.0.0

来自分类Dev

如何使用Redux-Form v6创建可重用的表单组件组?

来自分类Dev

当使用路由渲染道具而不是路由组件道具时,如何访问 react-router-dom 4 中的 url args?

来自分类Dev

在React Router v6中,如何在离开页面/路由之前检查表单是否脏

来自分类Dev

React Router不渲染组件

来自分类Dev

使用React Router和Redux Simple Router进行onEnter转换不会渲染新路由的组件

来自分类Dev

在DOM中渲染React组件

来自分类Dev

Redux + React-Router无法渲染

来自分类Dev

React-router-dom:在一个路由下渲染两个组件

来自分类Dev

将 react-router-dom Link 组件作为渲染道具传递失败

来自分类Dev

当使用react-router-dom匹配URL路径时,如何防止React组件卸载

来自分类Dev

带有react-router-dom链接的SpeedDialAction

来自分类Dev

带有 Reactstrap 和 React Router Dom 的 Active NavLink

Related 相关文章

  1. 1

    React-router-dom v6,URL更改但组件未呈现

  2. 2

    React-router-dom v6,URL更改但组件未呈现

  3. 3

    React-router-dom v6,URL更改但组件未呈现

  4. 4

    如何在react-router-dom v6中返回上一条路由

  5. 5

    使用React Router V6实施受保护的路由

  6. 6

    React Navigation Router V6无效的挂钩调用

  7. 7

    如何使用React Router v6将参数传递给链接?

  8. 8

    用户登录后如何使用React Router渲染不同的组件

  9. 9

    使用带有redux的react-native-router-flux,如何更新视图组件中的状态?

  10. 10

    如何使用react-router-dom添加将渲染组件的路由?

  11. 11

    如何使用react-intl,react-router-dom v4和TypeScript对React组件进行单元测试

  12. 12

    使用 React Router 渲染组件和 Redux 崩溃

  13. 13

    查看不会更新,但URL在React Router V6中会显示

  14. 14

    是否有任何方法可以在单击按钮时使用React Router v6打开页面

  15. 15

    如何使用带有typescript的react router dom导航到新页面

  16. 16

    React-router-dom v4 路由以及如何在子组件内部显示

  17. 17

    无法使用 switch 语句渲染路由 React router dom 5.0.0

  18. 18

    如何使用Redux-Form v6创建可重用的表单组件组?

  19. 19

    当使用路由渲染道具而不是路由组件道具时,如何访问 react-router-dom 4 中的 url args?

  20. 20

    在React Router v6中,如何在离开页面/路由之前检查表单是否脏

  21. 21

    React Router不渲染组件

  22. 22

    使用React Router和Redux Simple Router进行onEnter转换不会渲染新路由的组件

  23. 23

    在DOM中渲染React组件

  24. 24

    Redux + React-Router无法渲染

  25. 25

    React-router-dom:在一个路由下渲染两个组件

  26. 26

    将 react-router-dom Link 组件作为渲染道具传递失败

  27. 27

    当使用react-router-dom匹配URL路径时,如何防止React组件卸载

  28. 28

    带有react-router-dom链接的SpeedDialAction

  29. 29

    带有 Reactstrap 和 React Router Dom 的 Active NavLink

热门标签

归档