はい、ちょうどあなたのリアクトコンポーネントにその関数を添付してください(あなたがthis
経由でアクセスすることができます)か、グローバル(または多分から輸入し、それを維持する場合(this.search
の代わりにsearch
を)直接関数を使用しますmodule)。
私は外部関数としてそれを使用することは簡単です言う:
renderForm: function() {
return (
<div className="form_div">
Movie search: <input type="text" className="query"></input>
<button onClick={search} className="submit">Search</button>
</div> /* ^------ search comes from a script that's loaded before this code so we can just call it */
);
}
それがするのでsearch
内のロジックはあなたが作成しているコンポーネントに、より一般的または無関係である場合、それはまた、より良いアプローチとなりますlooser couplingをご提供ください。
検索は、特定のコンポーネント(結合this
を必要とします)に依存している場合、あなたはあなたのリアクトコンポーネントに添付する必要があります。実際の構文は、ES6 classesまたはReact.createClassを使用しているかどうかによって異なります。クラスを使用して
一つのアプローチは、適切なコンテキストでそれを呼び出すグローバル検索の周りにラッパー・メソッドを作成することです:
class MyComponent extends React.Component {
constructor() {
// ...
}
search(...args) {
search.apply(this, ...args); // <--- Call the global search but bind `this` to the React component instance.
}
// now you can use this.search in renderForm
renderForm() { ... }
}
ます。また、ご使用のコンポーネントのprototypeに直接search
を添付しませんでしたラッパー関数は:
class MyComponent extends React.Component {
// ...
// you can use this.search in renderForm because it will be found on the prototype
renderForm() { ... }
}
MyComponent.prototype.search = search; // <-- attach global search to the prototype of your component
限りReact.createClass
を使用して、あなたはちょうどあなたが渡すオブジェクトへのグローバルsearch
への参照を添付することができカーレされているすべての機能を。 dを自動的にそのオブジェクトに設定します
var MyComponent = React.createClass({
search: search, // <-- attach global search to your component,
// now you can use this.search in renderForm because it is a method of your component
renderForm() { ... }
});
@ nem035どのように反応コンポーネントに「添付」しますか?申し訳ありませんが、英語は私の母国語ではありません。 – Zarkaylia
詳細を記入して回答を掲載しました – nem035