2015-12-22 65 views
0

我正在使用react-bootstrap-switch作用於我正在構建的應用程序,並且無法獲取開關的狀態。獲取value-statestate-bootstrap-switch

這是我如何使開關:

<Switch value={'off'} state={this.state.storyStatus} size={'small'} onColor={'danger'} onChange={this.handleChange}/> 

我已經使用這個了更改處理:

handleChange: function() { 
     console.log(this.state); 
     //this.setState({storyStatus: !this.state}); 
    }, 

,這是我的初始狀態的方法:

getInitialState: function() { 
    return { 
     storyStatus: "false" 
    }; 
    }, 

console.log只記錄初始狀態,而不是開關的實際狀態。

使用反應開發工具,我可以看到當我操作開關時狀態改變,但似乎無法拉開開關狀態的值。

enter image description here

最終我想改變基於所述開關的狀態的li元素的背景顏色。

+0

感謝您指出,但console.log似乎仍然拉動初始狀態,按鈕的實際狀態。因爲它不斷記錄假。 – chinds

回答

0

請注意,handleChange在父組件上定義,它會呈現Switch組件。這就是爲什麼this.state引用此父組件的狀態,而不是Switch組件的狀態。

以同樣的方式,getInitialState定義父組件的初始狀態,其中我們定義的唯一東西是storyStatus: "false"

要從Switch組件讀取值,可以使用onChange回撥訪問組件和狀態(source)。

這樣算下來

handleChange(component, state) { 
    console.log(state); 
} 

應該做的伎倆。