【发布时间】:2021-02-23 21:14:34
【问题描述】:
在 ReactJS 中,我想使用功能组件来更改按钮按下时的背景颜色。颜色应该存储在一个数组中,当按下按钮时应该循环更改背景颜色。
这是我尝试过的:
import React, { useState } from "react";
export default function Button(props) {
const [colors, setColour] = useState(['red', 'green', 'blue', 'orange', 'yellow']);
const changeBtncolor = () => {
setColour();
}
return (
colors.map((color, id) => {
return
<Button key={id} type="button"
style={{backgroundColor: color}}
onclick={changeBtncolor(props)}>Change color
</Button>
})
)
}
【问题讨论】:
-
您的问题不清楚(您说“the”按钮,但您为数组中的每种颜色创建一个,您说“更改背景颜色”但您没有说什么)和您的代码没有意义(
colours开始一个数组,但是当您单击按钮时,您将其设置为该数组中的单个值,至少如果您没有制作 this error,您会这样做。 -
看来@kbkb 需要澄清这个问题。您至少想告诉我们对代码的期望,以便我们至少可以尝试以不同的方式解决它吗?
-
抱歉,我的意思是“React 功能按钮组件,当单击按钮时,它将循环通过道具 (
colors: string[]) 传递给组件的颜色数组,这样每次按钮被点击时,它会将按钮的颜色更改为数组中的下一个“ -
@kbkb 以简单的方式我们可以做到。我将为此编写一个非常简单的代码并更新我的答案,给我几分钟。
-
@kbkb 我已经回答了,而且我也有预览。看看这个。另请参阅What should I do when someone answers my question?。
标签: reactjs react-functional-component