2016-08-17 8 views
0

私は、ボタンのクリックイベントをテキストにキャプチャしたり、アラートを得るためのシンプルなものを作成しています。 ReactJS JSXコードは以下に貼り付けられます:MVC-ReactJSボタンのonclickイベントが起動しない

var SearchBar = React.createClass({ 
getInitialState: function() { 
    return {message: "test"}; 
}, 
test1: function(e) { 
    alert('hi'); 
    this.setState({message: "New Message"}); 
}, 
render: function() { 
    var self = this; 
    return (
     <div> 
      <button onClick={self.test1}>Change Message</button> 
      {this.state.message} 
     </div> 
    ); 
}, 

});

として、私はMVCのCSHTMLで SearchBarコンポーネント上で使用

:ボタンをHTMLページにレンダリングさ

@Html.React("SearchBar", new{ }) 

が、クリックイベントにthis.state.message値を変更することができません。 ここで私は間違いをしていますか?

答えて

0

たぶん、あなたがそう望む:

render: function() { return <div> <button onClick={this.test1}>Change Message</button> {this.state.message} </div> }

使用thisではなくself

+0

私もこの方法を使用しました。しかし、それは動作しません。 – NeoAsh

+0

https://jsfiddle.net/69z2wepo/53132/私にとってうまく動作するためには – ximet

+0

はい、それは私のためにも動作しますが、MVCとreactJS.netで使用すると動作しません – NeoAsh

0

この問題を気にする必要がある2つの事

  1. があり、すべてのjsxを追加します。 f cshtmlまたはViews \ Shared_Layout.cshtmlファイルでスクリプトタグを使用するか、バンドルを使用します。例えばSystem.Web.Optimization.Scripts.Render( "〜/バンドル/メイン")

  2. その後コール@Html.ReactInitJavaScript()方法@ 。

今すぐクリックしてください。

関連する問題