将两个 React 应用合并为一个
Merge two React applications into one
我正在尝试合并两个现有的 React 应用程序。第一个是常规的,没有路由器,所以 index.ts 文件
渲染:
ReactDOM.render(
<App />,
document.getElementById('root') as HTMLElement
);
第二个是带有路由器的 React DnD,它的 index.ts 文件是:
ReactDOM.render(
<DndProvider backend={HTML5Backend}>
<AppStateProvider>
<App />
</AppStateProvider>
</DndProvider>,
document.getElementById('root')
)
在我的 App.tsx 文件中,我决定呈现什么内容(用户请求第一个还是第二个应用程序),所以我不确定如何将提供者与应用程序隔离
如果我不需要它。
您可以将最终渲染到 DOM inn App.tsx 并创建两个组件,有和没有 Provider 和 select 您需要的组件并渲染它
index.ts
const AppWithProvider = () => (
<DndProvider backend={HTML5Backend}>
<AppStateProvider>
<App />
</AppStateProvider>
</DndProvider>
)
export default AppWithProvider;
App.tsx
import AppWithProvider from '/your/provider/path';
import App from '/your/app/path';
const Comp = yourConditionForProvider? AppWithProvider: App;
ReactDOM.render(
<Comp />,
document.getElementById('root') as HTMLElement
);
我正在尝试合并两个现有的 React 应用程序。第一个是常规的,没有路由器,所以 index.ts 文件 渲染:
ReactDOM.render(
<App />,
document.getElementById('root') as HTMLElement
);
第二个是带有路由器的 React DnD,它的 index.ts 文件是:
ReactDOM.render(
<DndProvider backend={HTML5Backend}>
<AppStateProvider>
<App />
</AppStateProvider>
</DndProvider>,
document.getElementById('root')
)
在我的 App.tsx 文件中,我决定呈现什么内容(用户请求第一个还是第二个应用程序),所以我不确定如何将提供者与应用程序隔离 如果我不需要它。
您可以将最终渲染到 DOM inn App.tsx 并创建两个组件,有和没有 Provider 和 select 您需要的组件并渲染它
index.ts
const AppWithProvider = () => (
<DndProvider backend={HTML5Backend}>
<AppStateProvider>
<App />
</AppStateProvider>
</DndProvider>
)
export default AppWithProvider;
App.tsx
import AppWithProvider from '/your/provider/path';
import App from '/your/app/path';
const Comp = yourConditionForProvider? AppWithProvider: App;
ReactDOM.render(
<Comp />,
document.getElementById('root') as HTMLElement
);