Сделайте собственный url / myadmin для установки и использования приложения response-admin - PullRequest
0 голосов
/ 04 августа 2020

Я использую response-admin для создания панели администратора для интернет-магазина. Поэтому я хочу, чтобы все response-admin находились по ссылке, например, http://localhost: 8000 / myadmin

Проблема в том, что все маршруты в response-admin по умолчанию http://localhost, поэтому, когда я нажимаю на продукты в левая сторона (посмотрите на изображение) приложение переводит меня на страницу http://localhost/product вместо http://localhost/myadmin/products, или когда я нажимаю на панель управления, он переводит меня на http://localhost вместо http://localhost/myadmin

введите описание изображения здесь

Это мое приложение. js файл, в котором я определил / myadmin route

ReactDOM.render(
    <BrowserRouter>
      <Switch>
        <Route path="/" exact component={Homepage} />
        <Route path="/display-item" component={DisplayProduct} />
        <Route path="/product/:id" component={OneProduct} />
        <Route path="/checkout" component={CheckOut} />
       <Route path="/myadmin" component={myAdmin}/>  
      </Switch>
    </BrowserRouter>,
  document.getElementById('crud-app'),
);

myAdmin. js файл, в котором я вызываю приложение

import React from 'react';
import { Admin, Resource,ListGuesser,fetchUtils,EditGuesser } from 'react-admin';
import UserList from './users';
import { createBrowserHistory as createHistory } from 'history';
import simpleRestProvider from 'ra-data-simple-rest';
import Dashboard from './dashboard';
import NotFound from './notFound';
import customRoutes from './customRoutes';
import OrderList from './orderList';
import CustomerList from './CustomerList';
import ProductList from './ProductList';
import { ProductCreate, ProductEdit } from './EditProduct';
import authProvider from './authProvider';

const history = createHistory({ basename: '/myadmin' });

const dataProvider = simpleRestProvider('http://localhost:8000');

function myAdmin() {
  return (
    <Admin customRoutes={customRoutes} authProvider={authProvider} catchAll={NotFound} dashboard={Dashboard} history={history} dataProvider={dataProvider}>
    <Resource name="users" list={UserList} />
    <Resource name="orders" list={OrderList} />
    <Resource name="customers" list={CustomerList} />
    <Resource name="product" list={ProductList} edit={ProductEdit} />
    

</Admin>
  );
}

export default myAdmin;

Также я определил customRoutes. js

export default [
    <Route exact path="/myadmin/users" component={UserList} />,
    <Route exact path="/myadmin/orders" component={OrderList} />,
    <Route exact path="/myadmin/customers" component={CustomerList} />,
    <Route exact path="/myadmin/products" component={ProductList} />,
    <Route exact path="/myadmin/products/:id" component={ProductEdit} />,
    <Route exact path="/myadmin" component={dashboard} />,
    <Route exact path="/myadmin/login" component={Login} noLayout />,
];

Кто-нибудь знает, как сделать / myadmin запущенным URL-адресом для реагирующего администратора, поэтому каждый путь просто добавляет / myadmin

1 Ответ

0 голосов
/ 06 августа 2020

Это странно.

Вы можете рассмотреть возможность удаления всех <Route /> компонентов из customRoutes, которые уже встроены в react-admin:

export default [
    <Route exact path="/myadmin/login" component={Login} noLayout />,
];

Единственное, что я могу думайте о правильной настройке baseName в вашей истории. Похоже, вы все сделали правильно.

...