2017-12-05 12 views
0

私はイベントハンドラー内で小道具を使用しようとしています。これは私のコードの問題は、私は「移動」ハンドラ内this.propsにアクセスすることはできませんよですイベントハンドラー内での使用小道具

class Dashboard extends Component { 
    componentDidMount() { 
    var grid = new Muuri('.grid', { 
     //options... 
    }); 
    grid.on('move', (data) => { 
     console.log('ok') 
     //can't use this.props here 
    ); 
    } 
    render() {...} 
    constructor() {...} 
} 

の一部です。

+0

関数を呼び出す場所のどこからでも 'this'をバインドする必要があります。 –

+0

私のarrow関数の後の.bind(this)でもconsole.log(this)は返りません。 – Phobie

+0

あなたは矢印関数を使っているので、 'this'は' componentDidMount'と同じ 'this'を参照する必要があります。問題の実行可能な例を提供できますか? – iofjuupasli

答えて

2

this.propsの参照を保存し、イベントハンドラ内で参照できます。

または デストラクタを使用して必要な個々のプロパティにアクセスし、イベントハンドラ内のそれらのプロパティにアクセスします。

+1

私はグリッドイベントを定義する前にpropsオブジェクトを破壊する最初の提案された解決策に同意します。 –

+0

これを行うと、this.propsの配列内のデータをプッシュできますか? – Phobie

+0

@Phobie 'this.props'は読み込み専用です。あなたはできませんし、しないでください。代わりに状態を持ち上げてください。 –