ReactJS-コンポーネントAPI
この章では、ReactコンポーネントAPIについて説明します。3つの方法について説明します。setState(), forceUpdate そして ReactDOM.findDOMNode()。新しいES6クラスでは、これを手動でバインドする必要があります。我々は使用するだろうthis.method.bind(this) 例では。
状態の設定
setState()メソッドは、コンポーネントの状態を更新するために使用されます。このメソッドは状態を置き換えるのではなく、元の状態に変更を追加するだけです。
import React from 'react';
class App extends React.Component {
constructor() {
super();
this.state = {
data: []
}
this.setStateHandler = this.setStateHandler.bind(this);
};
setStateHandler() {
var item = "setState..."
var myArray = this.state.data.slice();
myArray.push(item);
this.setState({data: myArray})
};
render() {
return (
<div>
<button onClick = {this.setStateHandler}>SET STATE</button>
<h4>State Array: {this.state.data}</h4>
</div>
);
}
}
export default App;
空の配列から始めました。ボタンをクリックするたびに、状態が更新されます。5回クリックすると、次の出力が得られます。
アップデートさせる
コンポーネントを手動で更新したい場合があります。これは、forceUpdate() 方法。
import React from 'react';
class App extends React.Component {
constructor() {
super();
this.forceUpdateHandler = this.forceUpdateHandler.bind(this);
};
forceUpdateHandler() {
this.forceUpdate();
};
render() {
return (
<div>
<button onClick = {this.forceUpdateHandler}>FORCE UPDATE</button>
<h4>Random number: {Math.random()}</h4>
</div>
);
}
}
export default App;
ボタンがクリックされるたびに更新される乱数を設定しています。
Domノードを見つける
DOM操作には、 ReactDOM.findDOMNode()方法。まず、インポートする必要がありますreact-dom。
import React from 'react';
import ReactDOM from 'react-dom';
class App extends React.Component {
constructor() {
super();
this.findDomNodeHandler = this.findDomNodeHandler.bind(this);
};
findDomNodeHandler() {
var myDiv = document.getElementById('myDiv');
ReactDOM.findDOMNode(myDiv).style.color = 'green';
}
render() {
return (
<div>
<button onClick = {this.findDomNodeHandler}>FIND DOME NODE</button>
<div id = "myDiv">NODE</div>
</div>
);
}
}
export default App;
の色 myDiv ボタンがクリックされると、要素が緑色に変わります。
Note − 0.14アップデート以降、ES6に対応するために、古いコンポーネントAPIメソッドのほとんどが非推奨または削除されました。