在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ dvajs在嵌套路由中動(dòng)態(tài)導(dǎo)入model

dvajs在嵌套路由中動(dòng)態(tài)導(dǎo)入model

  1. 我想在子路由中動(dòng)態(tài)導(dǎo)入model, 因?yàn)閙odel比較大, 我需要在這個(gè)子頁面加載的時(shí)候加載model, 另外這個(gè)我通過modelExtend 動(dòng)態(tài)生成model(動(dòng)態(tài)生成namespace)
    在子路由中動(dòng)態(tài)導(dǎo)入model)
  2. 我的實(shí)現(xiàn)是在子路由中引入 app, 然后動(dòng)態(tài)加載路由, 確實(shí)動(dòng)態(tài)加載了子路由, 但是會(huì)報(bào)錯(cuò)
import React from 'react'
import modelExtend from 'dva-model-extend'
import { Route, Switch, Redirect } from 'react-router-dom'
import dynamic from 'dva/dynamic'
import app from '../../../index'

function StepRoutes({ match }) {
  const id = match.params.id
  const routes = [{
    path: `${match.url}/class-maintenance`,
    models: () => [modelExtend(ClassBasicModel, { namespace: `class-maintenance-${id}` })],
    component: () => import('./ClassMaintenance'),
  }, {
    path: `${match.url}/course-selection`,
    models: () => [import('./CourseSelection/basicModel')],
    component: () => import('../Steps/CourseSelection'),
  }]
  return (
    <Switch>
      <Route exact path={match.url} render={() => (<Redirect to={`${match.url}/class-maintenance`} />)} />
      {
        routes.map(({ path, ...dynamics }, index) => (
          <Route
            key={index}
            exact
            path={path}
            component={dynamic({ app, ...dynamics })}
          />
        ))
      }
    </Switch>
  )
}

export default StepRoutes

圖片描述

3.請問我該怎么正確的實(shí)現(xiàn)這個(gè)需求呢? 謝謝.

回答
編輯回答
毀與悔

從你發(fā)出來的代碼沒有看,只有ClassBasicModel不知道從哪里來,或許你沒有貼出來定義的代碼。
其他的沒有發(fā)現(xiàn)有什么問題。而且報(bào)的warning也無法與這段代碼對(duì)應(yīng)上。

需要注意的是:
modelExtend中的namespace會(huì)把原ClassBasicModelnamespace覆蓋掉,在引用這個(gè)model時(shí)不要把namespace引錯(cuò)了就可以了。

2017年2月7日 08:30