我希望一旦我在列表中添加另一个项目,前一个项目的颜色就不应更改
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> ); };
P粉2371257002024-04-04 18:40:53
你可以通过两种方式解决这个问题
import { useRef } from "react"; const NoteItem = ({ note }) => { const { colors, randomColorFunction } = useContext(AppContext); const color = useRef(randomColorFunction(colors)); return (...); };
import { useState } from "react"; const NoteItem = ({ note }) => { const { colors, randomColorFunction } = useContext(AppContext); const [color] = useState(randomColorFunction(colors)); return (...); };
如果您不想更改颜色,我认为 useRef
更合适。
请参阅此处实时预览