我希望一旦我在列表中添加另一个项目,前一个项目的颜色就不应更改
const NoteItem = ({ note }) => {
const { colors, randomColorFunction } = useContext(AppContext);
const color = randomColorFunction(colors);
return (
<div
className={`flex flex-col min-h-28 py-6 justify-between px-3 rounded-md whitespace-pre-wrap break-words`}
style={{ backgroundColor: `${color}` }}
>
<span className="font-bold text-3xl">{note.title}</span>
<span>{note.content}</span>
<small className="text=xl">{note.date}</small>
</div>
);
}; Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你可以通过两种方式解决这个问题
1。使用引用
import { useRef } from "react"; const NoteItem = ({ note }) => { const { colors, randomColorFunction } = useContext(AppContext); const color = useRef(randomColorFunction(colors)); return (
...
);
};
2.使用状态
import { useState } from "react"; const NoteItem = ({ note }) => { const { colors, randomColorFunction } = useContext(AppContext); const [color] = useState(randomColorFunction(colors)); return (
...
);
};
如果您不想更改颜色,我认为
useRef更合适。请参阅此处实时预览