Есть метод
checkWinner
, который который срабатывает при клике на
<ButtonResult checkWinner={this.checkWinner}/>
. Данный метод находит наибольшее значение ключа в объекте
this.state
и выводит в консоль.
Проблема заключается в том, что выводит
{"[object Object]":1}
, а вместо
[object Object]
должен быть
id
, к примеру
voute1
.
export default class Main extends React.Component {
constructor(props) {
super(props);
this.state = {
vote1: 0,
vote2: 0,
vote3: 0,
vote4: 0,
vote5: 0,
}
this.increaseVote = this.increaseVote.bind(this);
this.checkWinner = this.checkWinner.bind(this);
}
increaseVote(id) {
return this.setState(state => {
console.log({[id]: state[id]});
return {[id]: state[id] + 1}
})
}
checkWinner(id) {
console.log({[id]: Math.max(...Object.values(this.state))})
return this.setState({
[id]: Math.max(...Object.values(this.state))
})
}
render() {
return (
<Wrapper>
<List>
<Item text="😜" id="vote1" increaseVote={this.increaseVote} state={this.state}/>
<Item text="😈" id="vote2" increaseVote={this.increaseVote} state={this.state}/>
<Item text="🚀" id="vote3" increaseVote={this.increaseVote} state={this.state}/>
<Item text="😎" id="vote4" increaseVote={this.increaseVote} state={this.state}/>
<Item text="😶" id="vote5" increaseVote={this.increaseVote} state={this.state}/>
</List>
<ButtonResult checkWinner={this.checkWinner}/>
<Winner/>
</Wrapper>
)
}
}
export default class ButtonResult extends React.Component {
render() {
const { checkWinner } = this.props;
return (
<button onClick={checkWinner} className="button-result">Result</button>
)
}
}