DioxusLabs/dioxus

Please change the function signature of `dioxus::server::router` to allow users to set the state type

Open

#5,394 创建于 2026年3月20日

在 GitHub 查看
 (5 评论) (0 反应) (0 负责人)Rust (36,038 star) (1,655 fork)batch import
enhancementfullstackgood first issue

描述

Feature Request

I want to be able to set the state type on the router that's created when using the dioxus::server::router function.

Implement Suggestion

The function is located in https://github.com/DioxusLabs/dioxus/blob/main/packages/fullstack-server/src/launch.rs

line 96.

change it from:

pub fn router(app: fn() -> Element) -> Router {
//....
}

to:

pub fn router<State = ()>(app: fn() -> Element) -> Router<State> { // Setting the default to `()` should ensure compatability with existing apps
//....
}

That way I can do this:

dioxus::server::router::<crate::server::state::ArcStore>(App).with_state(store) //  a struct wrapped in an Arc 

You'll probably have to update some of the other functions that expect just a Router like serve.

贡献者指南