2016-09-16 6 views
2

私は解決に苦しんでいる範囲の問題があります。React.createClass内のスコープの問題

私はgetTrackNotesをes6モジュールにインポートします。これはReactクラス内で以下のように参照しますが、これはトラック(リアクションクラス)に設定されています。

どうすればいいですか?

import { getTrackNotes } from '../utils/immutableInstruments'; 

const Track = React.createClass({ 

    componentDidMount() { 

     const { trackId } = this.props.params; 

     function updateTimeSequencer (socket, state, getTrackNotes, TimeSequencer, instruments, trackId) 
     { 

      //I want to call getTrackNotes here, but the scope is set to the Track React class 
      **getTrackNotes();** 

     } 
     var instruments = this.props.instruments; 

     socket.on('state', updateTimeSequencer.bind(this, socket)); 
    } 

答えて

3

あなたgetTrackNotes機能は、トップスコープから継承されますが、同じ名前の関数の引数でそれをオーバーライドしています。ただ、関数の引数リストからgetTrackNotesを削除するか、他の何かに引数の名前を変更:

function updateTimeSequencer (socket, state, thisIsSomethingElse, TimeSequencer, instruments, trackId) 
+0

ああ、私は地獄が起こっていたかと思った、私はその感謝を試してみましょう – iKode