Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const useBar = () => {
- const [myFoo, setFoo] = useState(0);
- const [myBar, setBar] = useState(0);
- useEffect(() => {
- setFoo(myFoo + 1);
- console.log("setting foo (1)", myFoo, myBar);
- }, [setFoo, myFoo, myBar]);
- useEffect(() => {
- setBar(myBar + 1);
- console.log("setting bar (2)", myFoo, myBar);
- }, [setBar, myBar, myFoo]);
- };
- import React, { useState, useEffect } from "react";
- import ReactDOM from "react-dom";
- const Bar = () => {
- useBar();
- return <div>Bar</div>;
- };
- function App() {
- return (
- <Bar />
- );
- }
- const rootElement = document.getElementById("root");
- ReactDOM.render(<App />, rootElement);
- setting foo (1) 1 1
- setting bar (2) 1 1
- setting foo (1) 2 2
- setting bar (2) 2 2
- setting foo (1) 3 3
- setting bar (2) 3 3
- ...
- describe("Tests", () => {
- test("useBar", async () => {
- const { rerender } = renderHook(() => {
- return useBar();
- });
- // await waitForNextUpdate();
- // tried the above doesn't work
- // rerender();
- // with rerender it loops through the next "cycle"
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement