Я пытаюсь использовать plainroutes, чтобы создать профиль реактивного маршрутизатора. Я не уверен, что plainroutes - это самый читаемый способ написания кода, но я стараюсь дать ему справедливый снимок, так как все в восторге от этого. У меня очень тяжелое время, пытаясь определить несколько макетов для моих компонентов. Возьмем следующий рабочий код:реагировать на множественные раскладки (корни маршрута) с помощью простых линий
РАБОЧЕМУ plainroutes пример
export const createRoutes = (store) => ({
path : '/',
component : CoreLayout,
childRoutes : [
LoginView(store),
SignupView(store),
Activate(store),
ForgotPw(store),
ConfirmReset(store)
]
}
)
Ничего неожиданного здесь происходит. Фактические маршруты встроены в вид, используя следующую структуру (например, LoginView):
Справочника Структуры childRoute объекты
-/Login
--index.js
--/components
--Loginview.jsx
--Loginview.scss
В index.js файлов содержат небольшие маршрутные блоки выглядящих так:
Пример childroute
export default (store) => ({
path : 'activate',
component: ActivateView
})
Я также включу источник нижеуказанного компонента Login
, как указано выше. Обратите внимание, что я попытался добавить path: 'login'
к этому компоненту, но это не имело значения.
Войти импорт
export default {
component: LoginView
}
Когда пользователь посещает /login
они видят компонент входа в систему. Легко ли? Ага. Теперь вы можете заметить, что все эти маршруты выглядят как группа представлений, связанных с проверкой подлинности. Я хочу, чтобы эти представления отображали макет. В этом случае CoreLayout
. Это также работает с вышеуказанным кодом.
Следующим шагом является то, что я хочу добавить панель управления пользователя после входа в систему. Эта приборная панель должна использовать другой макет, который я называю LoggedIn
. Естественно, я ожидал, что добавление другого объекта JSON с подобным рисунком может сделать это, так что я произвел следующий код:
неработающей множественной раскладку попытку
export const createRoutes = (store) => ({
path : '/login',
component : CoreLayout,
indexRoute : Login,
childRoutes : [
SignupView(store),
Activate(store),
ForgotPw(store),
ConfirmReset(store)
]
},
{
path : '/',
component : LoggedIn,
indexRoute : Home,
childRoutes : [
]
}
)
Приведенных выше код не работает должным образом. Единственный путь, который работает, это пути во втором элементе набора (тот, который имеет маршрут /
). Я попытался переместить некоторые маршруты из первого элемента вниз, а работа сделана, когда поместилась во второй элемент ... но это, очевидно, не решает мою проблему.
Самая неприятная вещь для меня заключается в том, что мне кажется, что я слежу за сообщениями SO, которые касаются этого, хотя его немного сложно сказать наверняка, потому что они не используют plainroutes. Я связываю один here для справки.