0

現在、react-rails gemおよびgeocomplete gem で Rails 4 を使用しています。

Reactjsを使用するようにフロントエンドを変更するまで、すべてうまくいきました。いくつかの文字を入力すると、オートコンプリート リストが表示されます。場所を選択しましたが、自分の州に表示される文字はわずかです。例: 「bir」と入力すると、「バーミンガム」のリストが表示されます。「イギリス、バーミンガム」を選択すると、「bir」しか保存されないのはなぜですか?

js.jsx:

var NewProject = React.createClass({
  mixins: [React.addons.LinkedStateMixin],

  getInitialState: function() {
    return {
      location: this.props.data.location
    }
  },

  render: function(){
    $("#location").geocomplete({ details: "form" });
    return <input type="text" id="location" valueLink={this.linkState('location')} />;
  }
}); 

少数の文字を入力しても、選択したときに文字列の完全な値を取得するにはどうすればよいですか?

4

1 に答える 1

0

問題は、ジオコンプリートが入力に対して何らかの魔法を実行することであり、React がフィールドの変更を監視する方法とうまく機能しません。オートコンプリートには他のソリューションを使用しようとしますが、geocomplete に固執する必要がある場合は、jquery + プレーンな onChange メソッドを使用してフィールドの変更を検出できます。このようなもの:

var NewProject = React.createClass({

  getInitialState: function() {
    return {
      location: this.props.data.location
    }
  },
  
  onGeoChange: function(e) {
    this.setState({
      location:  $("#location").val()
    });
  },

  render: function(){
    $("#location").geocomplete({ details: "form" });
    return <input type="text" id="location" onChange={this.onGeoChange} />;
  }
});

于 2015-11-25T08:32:38.960 に答える