ネイティブに反応します:州対小道具
10463 ワード
反応で最も初心者を混乱させる質問.
小道具と州の違いは何ですか?
これを明らかにする.
小道具は、我々がコンポーネントに与えるデータを含みます.
状態には、そのコンポーネントに対してローカルまたはプライベートのデータが含まれます.したがって、他のコンポーネントはその状態にアクセスすることができません.
カウンタコンポーネントを持っていると言うことができます.
このコンポーネントの
小道具は、例えば
だから反応は、任意のコンポーネントに任意の小道具を変更することはできません.
コンポーネントのライフサイクル中に入力を変更したい場合は、その入力を取得し、
stateとpropsについての詳細については、反応docs.
小道具と州の違いは何ですか?
これを明らかにする.
小道具は、我々がコンポーネントに与えるデータを含みます.
状態には、そのコンポーネントに対してローカルまたはプライベートのデータが含まれます.したがって、他のコンポーネントはその状態にアクセスすることができません.
カウンタコンポーネントを持っていると言うことができます.
import React, { Component } from 'react';
import Counter from './counter';
class Counters extends Component {
state = {
counters: [
{id: 1, value: 0},
{id: 2, value: 0},
{id: 3, value: 0},
{id: 4, value: 0}
]
};
render() {
return (
<div>
{ this.state.counters.map(counter =>
<Counter key={counter.id} value={counter.value} id={counter.id}>
</Counter>
)
}
</div>
);
}
}
export default Counters;
render
コンポーネントのCounters
メソッドを詳しく見てみましょう.<Counter key={counter.id} value={counter.value} id={counter.id}></Counter>
ここで設定するすべての属性はprops
コンポーネントの入力です.このコンポーネントの
Counter
にはアクセスできません.このコンポーネントはローカルで内部です.小道具は、例えば
state
コンポーネントを見てみましょう.import React, { Component } from 'react';
class Counter extends Component {
state = {
value: this.props.value
};
handleIncrement = product => {
this.setState({value: this.state.value + 1});
};
render() {
return (
<div>
<span className='badge badge-warning'>{this.state.value}</span>
<button
onClick={ () => this.handleIncrement({ id: 1 }) }
className="btn btn-secondary btn-sm">click
</button>
</div>
);
}
}
export default Counter;
ヘルパーメソッドCounter
を参照してください.handleIncrement = product => {
this.setState({value: this.state.value + 1});
};
handleIncrement
の方法を更新すると、以下のようにhandleIncrement
を更新します.handleIncrement = product => {
this.props.value = 0;
// this.setState({value: this.state.value + 1});
};
そして、ビューでインクリメントします.だから反応は、任意のコンポーネントに任意の小道具を変更することはできません.
コンポーネントのライフサイクル中に入力を変更したい場合は、その入力を取得し、
props.value
メソッドで最初に行ったような状態にします.handleIncrement = product => {
this.setState({value: this.state.value + 1});
};
州と小道具についての詳細情報
stateとpropsについての詳細については、反応docs.
Reference
この問題について(ネイティブに反応します:州対小道具), 我々は、より多くの情報をここで見つけました https://dev.to/andrehatlo/react-native-state-vs-props-33h7テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol