{"record":{"id":"11bea644204d298e","repo":"DioxusLabs/dioxus","slug":"lifetimes-are-not-supported-in-components","errorCode":null,"errorMessage":"Lifetimes are not supported in components","messagePattern":"Lifetimes are not supported in components","errorType":"validation","errorClass":"syn::Error","httpStatus":null,"severity":"error","filePath":"packages/core-macro/src/component.rs","lineNumber":469,"sourceCode":"            }\n        }),\n        input_arg_doc: arg_doc,\n    })\n}\n\nfn validate_component_fn(item_fn: &ItemFn) -> Result<()> {\n    // Do some validation....\n    // 1. Ensure the component returns *something*\n    if item_fn.sig.output == ReturnType::Default {\n        return Err(Error::new(\n            item_fn.sig.output.span(),\n            \"Must return a <dioxus_core::Element>\".to_string(),\n        ));\n    }\n\n    // 2. make sure there's no lifetimes on the component - we don't know how to handle those\n    if item_fn.sig.generics.lifetimes().count() > 0 {\n        return Err(Error::new(\n            item_fn.sig.generics.span(),\n            \"Lifetimes are not supported in components\".to_string(),\n        ));\n    }\n\n    // 3. we can't handle async components\n    if item_fn.sig.asyncness.is_some() {\n        return Err(Error::new(\n            item_fn.sig.asyncness.span(),\n            \"Async components are not supported\".to_string(),\n        ));\n    }\n\n    // 4. we can't handle const components\n    if item_fn.sig.constness.is_some() {\n        return Err(Error::new(\n            item_fn.sig.constness.span(),\n            \"Const components are not supported\".to_string(),","sourceCodeStart":451,"sourceCodeEnd":487,"githubUrl":"https://github.com/DioxusLabs/dioxus/blob/24f6a829df0dfa203961a98ea4cae21c2ff27e28/packages/core-macro/src/component.rs#L451-L487","documentation":"Validation 2 in validate_component_fn: the #[component] fn declares explicit lifetimes in its generics. The macro cannot generate props/rendering code that borrows from the caller, so lifetime-generic components are rejected at compile time; the faulting input is the lifetime parameter list.","triggerScenarios":"Thrown at packages/core-macro/src/component.rs:469 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Components cannot have lifetimes. Use owned types in the props instead of references."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"24f6a829df0dfa203961a98ea4cae21c2ff27e28","analyzedAt":"2026-08-23T07:10:14.078Z","contentChangedAt":"2026-08-23T07:10:14.078Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}