私はMeteor/Reactアプリケーションを持っていて、Meteor createContainer
コンテナメソッドを使ってMongoからデータを収集し、結果を子コンポーネントに渡しています。 params
のいずれかが変更された場合、Mongoクエリは再計算されます(ただし、パラメータはMongoクエリ自体に影響を与えません)。そして、小道具が子コンポーネントに送信され、不必要に再レンダリングされます。これは、createContainer
が動作することになっているか、またはクエリが返すデータが変更されたときにだけ小道具を送信するだけですか? params
がMyComponent
に受け継がれ、うリアクトされますので、その小道具が変更されたためparams
変更は、MyComponent
を再レンダリングするとき注入されたパラメータが変化したときにMeteor createContainerが再計算されますか?
export default MyComponentContainer = createContainer((params) => {
// Some Mongo queries...
var query results = MyColl.find({}).fetch();
return {
query results
};
}, MyComponent);
これに追加するには、[MyComponent]が再作成されないように['shouldComponentUpdate'](https://facebook.github.io/react/docs/react-component.html#shouldcomponentupdate)を使用することもできますそれが必要でないなら、浪費する。 – Waiski
一般にReactでは、5つの小道具のうち1つが変更されると、5つの小道具が使用されているこのコンポーネント内のすべての場所がその値を更新しますか? – JoeTidee
コンポーネントに子コンポーネントがない場合は、その中のすべてが小道具の1つが変更されたときに再レンダリングされます。 – Khang