0
发现错误,请参阅下面ReactJS:如何使用的setState由我自己主动等维护项目
我的答案,但我将不胜感激,如果SMB解释我这个魔法与事件的处理是如何工作的。 如何更改活动函数知道哪个索引变量是?
我有一个语句列表,其中第一个语句默认处于活动状态。我想要点击切换活动。
下面变化Statements`组件状态activeIndex的代码点击语句的索引。但声明组件道具有效没有反应,因为我认为,它只是从每个声明中消失,所以在我的列表中没有活动项目。
那么我做错了什么?什么是最佳实践?
statements.coffee
@Statements = React.createClass
getInitialState: ->
statements: @props.data.statements
activeIndex: 0
changeActive: (index) ->
@setState activeIndex: index
console.log(index)
render: ->
React.DOM.div
className: 'row'
React.DOM.div
className: 'col-sm-9 statements'
for statement, index in @state.statements
React.createElement Statement, statement: statement, index: index, key: statement.id, active: (if @state.activeIndex == index then true), handleActiveStatement: @changeActive
statement.coffee
@Statement = React.createClass
handleClick: ->
@props.handleActiveStatement(index: @props.index)
render: ->
React.DOM.div
className: 'statement ' + (if @props.active then 'active ' else null)
onClick: @handleClick
@props.index+1+'. '
React.DOM.span null,
@props.statement.body