Comments (7)
Update: Extracting the autofocus form component into a separate component does the trick:
#[derive(Properties, PartialEq)]
struct TitleInputProps {
onchange: Callback<String>,
value: String,
}
// Workaround for https://github.com/patternfly-yew/patternfly-yew/issues/145:
#[function_component(TitleInput)]
fn title_input(TitleInputProps { onchange, value }: &TitleInputProps) -> Html {
html! {
<FormGroup required=true label="Title">
<TextInput required=true autofocus=true {onchange} value={value.clone()} />
</FormGroup>
}
}
This allows me to put a validation on the field too, without as much clutter, but it still feels weird.
from patternfly-yew.
There might be an issue with the initialization of the "focus" part. Re-rendering might cause that to be re-executed. Although I haven't experienced that myself.
from patternfly-yew.
Hm, I notice that the input_ref
on TextInput has a #[prop_or_default]
annotation, and I'm not passing a r#ref
into the component... could it be that when the containing component re-renders, the node reference gets re-set due to the default call, which changes the input_ref value into something non-equal, which re-triggers the effect in this line?
from patternfly-yew.
...aaand confirmed, this goes away when I set r#ref={node_ref}
(using a thing I created with use_node_ref()
as normal), the issue goes away. I think it might be dangerous to use Default::default()
with NodeRef
s?
from patternfly-yew.
I think it might be dangerous to use
Default::default()
withNodeRef
s?
Maybe :) … Can you come up with a PR?
from patternfly-yew.
I think I have an idea how to fix this - we can use use_effect_with((), move ...)
, which should run only on first render. Or use the autofocus prop as the criteria for when to re-run. I'll experiment and send something!
from patternfly-yew.
That was easy! #147 (:
from patternfly-yew.
Related Issues (20)
- Hover effects for clickable Cards HOT 1
- `UseStateHandle` created outside of a backdrop does not trigger a rerender inside the backdrop HOT 2
- [discussion] More advanced icon support HOT 6
- Keyboard navigation
- Info: Implemented components
- Callback/event handler signatures HOT 9
- [Discussion] Specification of SearchInput advanced search attribute parsing HOT 4
- Release 0.5.0 HOT 3
- [Disucssion] handling the "middle" truncation option HOT 8
- Selectable cards always select the first one HOT 1
- NavRouterItem not working with yew_nested_router HOT 2
- [Discussion] `data-test` property on components HOT 4
- Constant ID updates HOT 1
- Rethink keys in tables HOT 3
- [Discussion] New Table implementation
- error[E0277]: the trait bound `Bullseye: yew::Component` is not satisfied HOT 3
- Page Masthead and horizontal navigation HOT 5
- Gallery: weird behavior w.r.t. scroll state / re-rendering? HOT 3
- Chip Drag&Drop - how to use? HOT 1
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 patternfly-yew.