【发布时间】:2018-08-01 02:41:41
【问题描述】:
我有以下按钮:
{this.steps.map((step, index) => (
<Button variant="raised" color={(step.answer === 'done' ? 'primary' : 'default')}
onClick={this.markAs('done', step)}>
Done
</Button>
)}
我的markAs() 函数如下所示:
markAs(value, step) {
step.answer = value;
}
虽然step.answer 更改为done,但按钮的颜色保持不变。
class App extends Component {
steps = [...some steps];
}
怎么了?
【问题讨论】:
-
步是一种状态吗?
-
@Rodius steps 是我声明的对象数组
-
由于您没有使用 React 状态,因此当您创建的自定义属性发生更改时,组件不会重新渲染。如果使用
setState,它将强制重新渲染组件。
标签: reactjs