2017-05-05 13 views
2

スライダを更新するときに状態を変更しようとしています。 はどういうわけかSETSTATEは機能エラーが表示されていません。スライダイベント状態の設定状態は関数エラーではありません

私が反応する新たなんだと私はおそらく状態の使い方をまだ正確に実現していない「TypeError例外this.setStateは関数ではありません」 。

var ReactDOM = require('react-dom'); 
var React = require('react'); 
var SliderComponent = require('rc-slider'); 

class Slider extends React.Component { 
constructor(props) { 
    super(props); 
    console.log("SLIDER"); 
    console.log(props); 
    this.state = { 
     value: 50, 
    }; 

} 
onSliderChange(value){ 
    console.log(value); 
    this.setState({ 
     value: value 
    }); 
} 
render() { 
    return (<div> SLider 
     <SliderComponent value={this.state.value} tipTransitionName="rc-slider-tooltip-zoom-down" onChange={this.onSliderChange} /> 
    </div>) 
} 
} 

module.exports = Slider; 

答えて

2

あなたはonSliderChange関数にこのをバインドする必要があります。

<SliderComponent value={this.state.value} tipTransitionName="rc-slider-tooltip-zoom-down" onChange={this.onSliderChange.bind(this)} /> 

これはコンストラクタでも実行できます。

constructor(props) { 
    super(props); 
    console.log("SLIDER"); 
    console.log(props); 
    this.state = { 
     value: 50, 
    }; 
    this.onSliderChange = this.onSliderChange.bind(this) 
} 

これを行うには他にも多くの方法があります。

https://medium.com/@housecor/react-binding-patterns-5-approaches-for-handling-this-92c651b5af56

+0

ありがとうございます!それは動作します! :)私はそのリンクを見てみましょう! –

+0

あなたは歓迎です:) –

関連する問題