小编Tig*_*ran的帖子

React 组件有时会在状态不变的情况下渲染两次

我正在使用 Redux 订阅商店并更新组件。

这是一个没有 Redux 的简化示例。它使用一个模型商店来订阅和分派。

请按照代码段下面的步骤重现问题。

编辑:请跳到更新下的第二个演示片段,以获得更简洁、更接近现实生活的场景。问题在于 Redux。这是关于 React 的 setState 函数标识在某些情况下导致重新渲染,即使状态没有改变。

编辑 2:在“更新 2 ”下添加了更简洁的演示。

const {useState, useEffect} = React;

let counter = 0;

const createStore = () => {
	const listeners = [];
	
	const subscribe = (fn) => {
		listeners.push(fn);
		return () => {
			listeners.splice(listeners.indexOf(fn), 1);
		};
	}
	
	const dispatch = () => {
		listeners.forEach(fn => fn());
	};
	
	return {dispatch, subscribe};
};

const store = createStore();

function Test() {
	const …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs use-effect use-state

4
推荐指数
1
解决办法
1522
查看次数

Git:恢复“git update-ref -d HEAD”删除的文件

我运行了git update-ref -d HEAD命令,它删除了我所有的文件。文件夹大小仍然很大,所以,我想文件以某种方式在 git 的内存中。我怎样才能恢复这些文件?

git

1
推荐指数
1
解决办法
714
查看次数

标签 统计

git ×1

javascript ×1

reactjs ×1

use-effect ×1

use-state ×1