1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #![allow(unused, non_upper_case_globals, non_snake_case)]
- use std::collections::HashMap;
- use std::rc::Rc;
- use dioxus::prelude::*;
- use dioxus_core::ElementId;
- use dioxus_signals::*;
- #[test]
- fn effects_rerun() {
- simple_logger::SimpleLogger::new().init().unwrap();
- #[derive(Default)]
- struct RunCounter {
- component: usize,
- effect: usize,
- }
- let counter = Rc::new(RefCell::new(RunCounter::default()));
- let mut dom = VirtualDom::new_with_props(
- |cx| {
- let counter = cx.props;
- counter.borrow_mut().component += 1;
- let mut signal = use_signal(cx, || 0);
- cx.use_hook(move || {
- to_owned![counter];
- Effect::new(move || {
- counter.borrow_mut().effect += 1;
- println!("Signal: {:?}", signal);
- })
- });
- signal += 1;
- render! {
- div {}
- }
- },
- counter.clone(),
- );
- let _ = dom.rebuild().santize();
- let current_counter = counter.borrow();
- assert_eq!(current_counter.component, 1);
- assert_eq!(current_counter.effect, 2);
- }
|