Fix spread props diffing (#2679)
* Fix spread props diffing * Add a regression test for extends prop diffing
This commit is contained in:
1 parent
6148941825
commit
ea3d88c1dd
2 files changed
+30
No files matched your search
@@ -134,3 +134,32 @@ fn TakesSignal(sig: ReadOnlySignal<usize>, number: usize) -> Element {
|
||||
button { "{number}" }
|
||||
}
|
||||
}
|
||||
|
||||
// Regression test for https://github.com/DioxusLabs/dioxus/issues/2582
|
||||
#[test]
|
||||
fn spreads_memorize_in_place() {
|
||||
#[derive(Props, Clone, PartialEq)]
|
||||
struct CompProps {
|
||||
#[props(extends = GlobalAttributes)]
|
||||
attributes: Vec<Attribute>,
|
||||
}
|
||||
|
||||
let mut props = CompProps::builder().build();
|
||||
assert!(!props.memoize(&CompProps::builder().all("123").build()));
|
||||
assert_eq!(
|
||||
props.attributes,
|
||||
vec![Attribute::new("all", "123", Some("style"), false)]
|
||||
);
|
||||
|
||||
assert!(!props.memoize(&CompProps::builder().width("123").build()));
|
||||
assert_eq!(
|
||||
props.attributes,
|
||||
vec![Attribute::new("width", "123", Some("style"), false)]
|
||||
);
|
||||
|
||||
assert!(!props.memoize(&CompProps::builder().build()));
|
||||
assert_eq!(props.attributes, vec![]);
|
||||
|
||||
assert!(props.memoize(&CompProps::builder().build()));
|
||||
assert_eq!(props.attributes, vec![]);
|
||||
}
|
||||
Reference in new issue
Block a user