簡體   English   中英

類型函數的無狀態功能組件支持不會更新

[英]Stateless Functional Component prop of type function doesn't update

我不知道如何准確描述我所面臨的問題,因此標題可能毫無意義。

我正在使用React 15.4.2,Mobx 3.0.0

我有一個無狀態的功能Blah它接受一個對象成分thing作為一個支柱。
thing具有可觀察的屬性。
不出所料,當傳入其他thing實例時,Blah組件將相應地更新。
Blah組件有另一個組件,該組件基本上是稱為DzComponent react-dropzone-component的包裝器
傳遞給react-dropzone-component的參數之一是success事件處理程序。 當我們放下東西並成功上傳時,這稱為。

問題是事件的順序是這樣的:

  • Blah用東西實例A叫來
  • DzComponent正確獲取handleImageUpload參考。 即成功后,當我們調用props.thing.observable它是指實例A
  • Blah用東西實例B叫來
  • DzComponent似乎仍然引用舊的handleImageUpload參考。 即成功后, props.thing.observable仍然引用實例A而不是預期的實例B

如何獲取事件處理程序以更新正確的實例?

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);

我剛剛檢查了http://jsbin.com/bulubuwuzo/1/edit?js,控制台,輸出

一切正常

也許您在DzComponentDropzoneComponent組件上有錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM