Как вывести компонент на новой странице?

Добрый день!
У меня есть что-то наподобие layout. Там имеется Navbar и роуты для вывода.

App.js
function App() {
  return (
    <BrowserRouter>
      <NavBar/>
      <div className='content'>
        <Routes>
          <Route path='/movies/*' element={<Movies/>}/>
          <Route path='/customers' element={<Customers/>}/>
          <Route path='/rentals' element={<Rentals/>}/>
        </Routes>
      </div>
    </BrowserRouter>
  );
}

export default App;


По ссылке /movies выводится таблица с фильмами. При клике по названию фильму должна открываться новая страница, на которой рендерится компонент Movie.

tableBody.jsx....
renderCell = (item, column) => {
        if (column.content) return column.content(item);
        if (column.path === 'title') return <Link to={`/movies/${item._id}`}>{_.get(item, column.path)}</Link>
        return _.get(item, column.path);
    };


Пытался сделать вот так, но тогда Movie рендерится ниже таблицы, а мне нужно на новой странице.

App.js
<Route path='/movies/' element={<Movies/>}>
            <Route path=':id' element={<Movie/>}/>
          </Route>


tableBody
class TableBody extends Component {
    renderCell = (item, column) => {
        if (column.content) return column.content(item);
        if (column.path === 'title') return <Link to={`/movies/${item._id}`}>{_.get(item, column.path)}</Link>
        return _.get(item, column.path);
    };

    createKey = (item, column) => {
        return item._id + (column.path || column.key);
    };

    render() {
        const { data, columns } = this.props;
        return (
            <React.Fragment>
                <tbody>
                { data.map(item => (
                    <tr key={ item._id }>
                        {columns.map(column => <td key={ this.createKey(item, column) }>{ this.renderCell(item, column) }</td>)}
                    </tr>
                ))}
            </tbody>
            <Routes>
                <Route path=':id' element={<Movie/>}/>
            </Routes>
            </React.Fragment>
        );
    }
}
 
export default TableBody;
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы