isa1vatore / vk-mini-app-boilerplate Goto Github PK
View Code? Open in Web Editor NEWСтартовый кит для создания сервиса на платформе VK Mini Apps с использованием React + Redux
License: MIT License
Стартовый кит для создания сервиса на платформе VK Mini Apps с использованием React + Redux
License: MIT License
Если проскроллить группы, а потом перейти на другой таб и вернуться обратно, скролл групп не сохранится (думаю, это как-то связано с недавнимим обновлениями скролла)
Обратил внимание, что в роутере используется своеобразный хак window.history.pushState(null, null);
возможно проще и чище использовать чуть другой хак:
// Чистим первоначальное состояние
window.history.replaceState({}, '', '#init');
// Добавляем вторую запись в историю
window.history.pushState({}, '', '#router');
window.addEventListener('popstate', (event) => {
// После нажатия кнопки назад (#init), возвращаем историю на вторую запись
window.history.pushState({}, '', '#router-back');
goBack('Android');
});
Соответственно у нас всегда 2 записи в истории и мы спокойно обрабатываем нажатие кнопки назад не засоряя историю.
В этом подходе из самого роутера можно будет убрать все вызовы pushState
.
Опять по твоему желанию)
Вертикальный скролл сохраняет, но нет API для сохранения горизонтального скролла внутренних компонентов. А было бы удобно) Ну то есть onscroll мы реализует сами, а сохранение происходит в основном storage где-нибудь в componentScrolls[componentId].(x,y)
Как воспроизвести:
Девайс: Honor 8x
И еще, мне кажется, что можно улучшить обработку события GO_BACK, в случае, если в popout установлен . Так как при спиннере весь интерфейс приложения блокируется, кроме системной кнопки назад на андройде, надо либо блокировать и ее (опять делать window.history.pushState(null, null) если показан спиннер) или же скрывать спиннер и делать дополнительный переход назад, так как нелогично просто скрыть спиннер при клике назад.
P.S. Класная репа, если у нее будет будущие, это будет супер))
Этот реп - уже находка, но мне кажется тут не хватает примера как сохранить состояние форм при переключении через setStory. Панели сохраняет, скролл сохраняет и т.д, но вот формы не сохраняет) Чисто на свое усмотрение добавь, если хочешь
Я наверное уже задалбывать начинаю)
Есть элемент HeaderContext, хотелось бы видеть реализацию открытия его из апишки, а также поддержку закрытия с помощью аппаратных кнопок "назад"
В некоторых случаях в приложении необходимо перейти из панели на одной табе в панель на другой табе. Это можно сделать с помощью this.props.setStoty(“more”, “more”);
. Однако, если мы открываем приложение и сразу переходим на панель в другой табе и хотим вернуться назад с помощью this.props.goBack()
, то из-за этой проверки, на iOS это работать не будет.
Я попробовал отключить эту проверку на Android и не заметил каких-либо проблем с навигацией в приложении. Не думаю, что эта проверка нужна.
Проблема в том, что при переходе из одной панели одного view в панель другого view, activePanel
меняется для обоих.
В примере из официальной документации такого эфекта не происходит т.к у каждой View всегда один и тот же activePanel
<Root activeView={this.state.activeView}>
<View activePanel="panel1.1" id="view1">
<Panel id="panel1.1">
<PanelHeader>View 1</PanelHeader>
<Group>
<CellButton onClick={ () => this.setState({ activeView: 'view2' }) }>
Open View 2
</CellButton>
</Group>
</Panel>
</View>
<View header activePanel="panel2.1" id="view2">
<Panel id="panel2.1">
<PanelHeader>View 2</PanelHeader>
<Group>
<CellButton onClick={ () => this.setState({ activeView: 'view1' }) }>
Back to View 1
</CellButton>
</Group>
</Panel>
</View>
</Root>
Возможно придется создавать доп. хранилище активных панелей или что-нибудь ещё
Как реализовать подтверждение перехода? Имею в виду Preventing navigation из router5.
Вариант использования: подтверждение алертом перехода назад (кнопка назад, Android back button или iOS swipe back) с формы с неcохранёнными данными.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.