首页 > 解决方案 > 为什么功能组件在使用 useEffect 时再次运行

问题描述

这是我的代码....不应该只在 useeffect 运行中编写代码吗?为什么我的整个功能组件代码都运行?当我运行它时,窗口警报出现两次

这是我的代码:

const Editbookfunctionalcomponent = () => {
  let { i,isb,n } = useParams();
  window.alert(n)
  let history = useHistory();
  const dispatch = useDispatch();
  const book = useSelector((state) => state.allreducers);
  const [name, setName] = useState("");
  const [isbn, setIsbn] = useState("");
  const [image, setImage] = useState("");

  useEffect(() => {
    console.log("useEffect");

  }, [book]);

  const onUpdateContact = (e) => {
    e.preventDefault();

    const update_book = Object.assign(book, {
      name: name,
      isbn: isbn,
      image: image,
    });

    dispatch(updateBook(i,update_book));
    history.push("/")
  };
  return (
    <div className="card border-0 shadow">
     
    </div>
  );
};

标签: reactjsreact-hooksuse-effect

解决方案


推荐阅读