Comments (5)
I have not used routing myself, but as far as I understand it, the SetPage message is indeed not meant to be used by you, but only by the router. It is only a way to flexibly configure the router to manipulate the model in the right way.
from bolero.
Yeah, we can't really detect that a URL change was caused by the same message that it triggers. So it's best to avoid dispatching it directly. Instead you can either have a separate message like you did, or directly set { model with page = page }
in the update for DoAThing
.
Maybe the documentation should recommend calling this message something like PageChanged
, to emphasize that it's not meant to be dispatched directly.
from bolero.
I've found a workaround, but it is not ideal.
type Message =
| SetPage of Page
| Redirect of Page
| DoAThing
let update message model =
match message with
| SetPage page ->
{ model with page = page }, Cmd.none
| Redirect page ->
{ model with page = page }, Cmd.none
| DoAThing ->
model, Cmd.ofMsg (Redirect NewPage)
let router = Router.infer SetPage (fun model -> model.page)
When DoAThing
is dispatched from Home
, Redirect NewPage
is dispatched once, followed by SetPage NewPage
. Any actions triggered by SetPage NewPage
(i.e. fetching data, etc) would only be run once.
from bolero.
Maybe the documentation should recommend calling this message something like
PageChanged
, to emphasize that it's not meant to be dispatched directly.
This makes sense! Thanks all.
from bolero.
Related Issues (20)
- Is there any option ho to get raw HTML? HOT 1
- How to define AntDesign Table in Bolero HOT 1
- FS2030 Invalid use of emitting a reference assembly : when compiling with VS 2022, .NET 7, F# 7 HOT 25
- How to set base URL for remoting? HOT 3
- Uncaught SyntaxError: import.meta may only appear in a module HOT 13
- Need more blazor component example integration (actually we need more demos)
- Question : DataGrid(QuickGrid) can have no date on web browser. HOT 4
- Question : DataGrid(QuickGrid) How can I update on client side. HOT 1
- crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100] HOT 7
- Is there a plan to upgrade to Elmish v4? HOT 2
- Use endpoint routing for remoting HOT 5
- How to get an element reference when using templates HOT 4
- How to make Select and option elements in HTML HOT 2
- Debugger: The request reached the end of the pipeline without executing the endpoint: 'Fallback {*path:nonfile}' HOT 3
- Support CSS isolation for Bolero components
- Types that mutually recur are unable to be serialized with System.Text.Json.
- feature request: Support SignalR based data subscriptions without affecting hot reloading HOT 2
- Could not load file or assembly 'Elmish, Version=4.0.1.0, Culture=neutral, PublicKeyToken=null' HOT 3
- is it possible to extend Bolero HTML Builder CEs with `CustomOperation`? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bolero.