【发布时间】:2016-09-05 22:09:55
【问题描述】:
所以我有一个绑定到我的按钮的函数,它应该在每次点击时执行不同的操作;返回值将在另一个 getter 中使用,我将在 render 中调用它,因此我无法在这种情况下使用 setState。
class awesomeFruits extends React.Component {
... constructor stuff etc
clickSomething () {
let fruit = 'banana'
let clickThing = 1
clickThing++
// please notice that I only need 3 actions
if (clickThing === 1) {
fruit = 'apple'
} else if (clickThing === 2) {
fruit = 'grape'
} else {
fruit = 'pineapple'
clickThing = 1 // reset click
}
return fruit
}
get fruitOfChoice () {
... non related stuff
this.clickSomething()
}
}
然后在我的渲染函数中:
render () {
return <button onClick={this.clickSomething.bind(this)}>CLICK FRUIT</button>
<p>this.fruitOfChoice</p>
}
我正在和 JS 一起学习 React,所以我不确定它是否主要是一个 React 问题。使用 vanilla JS,我可以通过将 clickThing 声明为零作为全局变量来使其工作,但我不知道如何使用 React 正确地做到这一点。
使问题更准确: 如何在每次点击时执行不同的操作,用我想要的结果更新渲染?
感谢任何反馈,即使我必须重新制作以上所有内容
【问题讨论】:
标签: javascript reactjs onclick click