下面的代码段有四个框。目的是这些框的顺序将被打乱,并在它们转到新位置时发生过渡动画。每个框的键对应于 useState 中源数组的颜色值。每次通过 shuffle 按钮更新时,源数组的值都会被打乱。然后我在返回函数中映射数组。我为每个框设置了 2 个 classNames。一个类名与索引对应,用于定位。另一个类名对应于源数组值,并且始终与该框的键一致。
我的问题是,react 似乎随机决定要注意和协调哪些键,以及忽略哪些键并重新安装这些元素。您可以在这里看到,一些元素正确过渡,而其他元素只是跳转到它们的目标位置。我不知道为什么会发生这种情况。有人可以帮忙吗?
编辑:我不认为这是不需要重新安装的协调问题。React 正确地尊重了密钥,而不是重新安装任何密钥。所以问题在于 React 如何处理更新期间添加的 CSS 转换类。有些过渡有效,有些则无效。这可能只是引擎的限制,但如果有人有任何进一步的煽动,请分享。
const {useState} = React;
function App() {
const [state, setState] = useState(['Red', 'Green', 'Blue', 'Black'])
function handleShuffle() {
const newState = _.shuffle(state)
setState(newState)
}
return (
<div className="App">
{state.map((sourceValue, index) => {
return (
<div className={
'box positionAt' + index + ' sourceValue' + sourceValue
}
key={sourceValue} ></div>
)
})}
<button id="shuffle" onClick={handleShuffle}> shuffle < /button>
</div>
);
}
const rootElement = …Run Code Online (Sandbox Code Playgroud)每当我使用 RKE 设置 Rancher Kubernetes 集群时,该集群就会完美设置。但是,我收到以下警告消息:
WARN[0011] [reconcile] host [host.example.com] is a control plane node without reachable Kubernetes API endpoint in the cluster
WARN[0011] [reconcile] no control plane node with reachable Kubernetes API endpoint in the cluster found
Run Code Online (Sandbox Code Playgroud)
(在上面的消息中,host.example.com是我实际主机名的占位符,此消息是针对 cluster.yml 中指定的每个控制平面主机给出的)
如何修改 RKEcluster.yml文件或任何其他设置以避免此警告?
reconcile ×2
javascript ×1
key ×1
kubernetes ×1
rancher ×1
rancher-rke ×1
react-hooks ×1
reactjs ×1