我试图在React中创建类似reddit的投票系统。 。我创建了一个更大的应用程序,涉及Redux,我试图将当前得分作为道具传递给投票组件并将结果保存到商店。我碰到了墙,我无法弄清楚这样做的正确方法。
我是否应该在reducer中处理算法,并且只有来自投票组件或的调度操作,如果组件保持其自己的本地状态,并且仅调度具有当前分数作为参数的操作?
这是我过去创建的旧实现。这很简单 为其目的工作得很好的投票系统。不过就是这样 从来没有真正存储保存结果,只是在DOM中显示它: var React = require(' react');
var Voting = React.createClass({
getDefaultProps: function() {
return {
number: liczba,
upvote: 'upvote',
downvote: 'downvote'
};
},
getInitialState: function () {
return{
upvoted: false,
downvoted: false
};
},
upvote: function () {
this.setState({
upvoted: !this.state.upvoted,
downvoted: false
});
},
downvote: function () {
this.setState({
upvoted: false,
downvoted: !this.state.downvoted
});
},
render: function () {
var {number, upvote, downvote} = this.props;
var {upvoted, downvoted} = this.state;
function voting(){
if(upvoted){
number++;
upvote = 'upvote-active';
} else if(downvoted){
number--;
downvote = 'downvote-active';
}
};
voting();
return(
<div className="vote">
<div className={upvote} onClick={this.upvote}></div>
<div className="score">{number}</div>
<div className={downvote} onClick={this.downvote}></div>
</div>
);
}
});
module.exports = Voting;