使用React,我正在构建一个简单的Sticky Notes应用程序,您可以根据需要添加任意数量的Sticky Notes。
我试图添加功能来改变便签的颜色,但它改变了它的每一个便签。
我可以对下面的代码做些什么,以便当我单击按钮时,它只更新我从中选择颜色的便笺?
我使用状态来更新颜色,但每个便利贴都受此影响。我目前有一个下拉菜单,从便利贴显示按钮(颜色),我可以选择。
const backgroundColors = [ { color:“#FDFFB6”,},{ color:“#FFD6A5”,},{ color:“#FFADAD”,},{ color:“} ];
const [currentColor, setCurrentColor] = useState('#FDFFB6')
const setColor = (color) => {
setCurrentColor(color);
}
{backgroundColors.map((color, index) => (
<button
className="w-4 h-4 rounded-full mx-1"
style={{ background: color.color }}
onClick={() =\> setColor(color.color)}
>
2条答案
按热度按时间xtfmy6hx1#
这些代码还不足以非常明确地说明如何处理您的用例,但是通常您需要将颜色状态与“StickyNote”react组件的单个示例相关联。
你可以通过确保notes的标记和状态是它自己的组件来实现,然后在notes组件内实现颜色选择器按钮。如果修改
currentColor
应用于所有notes,这表明你正在渲染具有相同状态/在单个react组件内的所有notes。ffx8fchx2#
你可以像那样实现这一点