私は直面している問題を正確に記述する方法を知らないので、タイトルがおそらくほとんど意味をなさないでしょう。タイプ機能のステートレス機能コンポーネントの小道具は更新されません
私は15.4.2を使用している反応は、私が小道具としてオブジェクトthing
を受け付けるステートレス機能Blah
成分を有する3.0.0
をmobx。
thing
は、観察可能な特性を有する。
期待通り、thing
の別のインスタンスが渡されると、それに応じてBlahコンポーネントが更新されます。 DzComponent
呼ばBlah
コンポーネントは、基本的のラッパーである別の成分が反応し、ドロップゾーン成分を有する反応-ドロップゾーン・コンポーネントに渡されたパラメータの1つはsuccess
イベントハンドラです。これは、何かを落として正常にアップロードするときに呼び出されます。
問題は、このイベントのシーケンスです:
- 事インスタンスと呼ばれる
Blah
A
DzComponent
は正しくhandleImageUpload
参照を取得します。すなわち成功時、我々はそれがインスタンスにA
- 事インスタンスと呼ばれる
Blah
B
DzComponent
を参照しているprops.thing.observable
を呼び出すときには、まだ古いhandleImageUpload
リファレンスを参照してくださいようです。すなわち成功時、props.thing.observable
はまだB
インスタンス
A
を参照の代わりに、意図したインスタンスれ
にはどうすれば正しいインスタンスを更新するために、イベントハンドラを得るのですか?
Blah.jsx
import React from 'react';
import {observer} from 'mobx-react';
function Blah(props) {
function handleImageUpload(evt, res) {
props.thing.observable = res.image_url
}
return (
<div>
<div>blah blah blah {props.thing.otherObservable}</div>
<DzComponent success={handleImageUpload}></DzComponent>
</div>
)
}
Blah.propTypes={
thing: React.PropTypes.object
}
export default observer(Blah)
DzComponent.jsz
import React from 'react';
import DropzoneComponent from 'react-dropzone-component';
function DzComponent(props) {
return <DropzoneComponent></DropzoneComponent>
}
export default observer(DzComponent);
hmmm。一緒に入れてくれてありがとう。それはうまくいくはずです。コードを再見直します。 –