Size: a a a

Next.js — русскоговорящее сообщество

2020 August 01

🦜

🦜 in Next.js — русскоговорящее сообщество
Ruslan Kopylov
Допустим в разделе "Личный кабинет" она черная, в разделе "Новости" - белая
ох, кто такой дизайн придумал?
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
🦜
ох, кто такой дизайн придумал?
Ну, криво, косо, но с этим теперь надо жить
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
Я вот и хотел бы себе облегчить это все так:

function Page() {
   return [Themes.Dark, <div>Content</div>]
}

и потом из _app.tsx вызывать

const [ Theme, ComponentToRender ] = Component();

return <AppContext theme={Theme}><ComponentToRender /></AppContext>
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
Такое возможно как-то сделать?
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
Тему и компонент вернуть у меня уже получилось, а вот отрендерить ComponentToRender - нет. Ругается на то что пришел объект и нельзя его отрендерить. Может как-то можно?
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
Ruslan Kopylov
Я вот и хотел бы себе облегчить это все так:

function Page() {
   return [Themes.Dark, <div>Content</div>]
}

и потом из _app.tsx вызывать

const [ Theme, ComponentToRender ] = Component();

return <AppContext theme={Theme}><ComponentToRender /></AppContext>
как я написал выше, я бы сделал контекст или стор, где бы просто описал объектом название страницы и ее тему
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
в app вытаскивал бы название страницы и сетил тему
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
🦜
как я написал выше, я бы сделал контекст или стор, где бы просто описал объектом название страницы и ее тему
А как их сопоставить?
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
Ruslan Kopylov
А как их сопоставить?
у тебя есть ctx
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
там есть path
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
или в req
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
Это удобнее конечно чем ничего, но все-таки отдельно в контексте описывать каждую страницу немного неприятно
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
Ruslan Kopylov
Это удобнее конечно чем ничего, но все-таки отдельно в контексте описывать каждую страницу немного неприятно
ты тоже самое делаешь на уровне страницы
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
ничего не меняется
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
только централизуется
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
🦜
ты тоже самое делаешь на уровне страницы
Вот и хотелось бы это делать именно на уровне страницы
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
Ruslan Kopylov
Вот и хотелось бы это делать именно на уровне страницы
такое
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
Перейдя к определению страницы всегда знаешь, какая у нее тема
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
Но собственно если нет другого варианта, то и черт бы с ним. По другому все равно никак не завести пока что, прямо сейчас из дочернего компонента вызывается setState у родителя и на сервере это не отрабатывает. А на клиенте при загрузке мигает тема.
источник