2016-04-13 26 views
1

React uygulamasında oldukça yeniyim ve Coherent UI kullanan bir oyun motorunda kullanmak için bir kullanıcı arayüzü geliştirmeye çalışıyorum. Kullanıcı arayüzüm React ile oluşturuldu ve tutarlı bir kullanıcı arabiriminden Reaktif uygulamasına mesaj almaya çalışıyorum.Nasıl çağrılır? Bileşeninin global bir bağlamdan işlevi (Tümleşik Kullanıcı Arabirimi)

Tutarlı UI ham javascript komut gönderme olanağı sunan tarayıcısı yürütmek veya olayları kaydetmek için komutları, ancak bunların hiçbiri benim için çalıştı.

Coherent UI'nin basit bir javascript komutu toggleLoadingAnimation(); göndermesini istiyorum, ancak bir javascript işlevinde gerçekten bir bileşenin işlevini çağıran veya durumunu değiştirecek olan bu javascript işlevini nasıl oluşturacağımı bilmiyorum.

İşte JavaScript komutlarını gönderme konusunda Tutarlı UI bilgiler verilmiştir: https://coherent-labs.com/Documentation/cpp/dc/dc7/_binding_cxx.html

nasıl bir komut biçimlendirmek veya düzgün bu şekilde çağrılacak bir bileşen için bir geri çağırma işlevi kayıt olabilirsiniz?

Bir bileşenin üye işlevlerinden birini çağırmasını söylemenin bir yolu var mı?

cevap

0

Bunu kullanarak Redux çözme ve pencere düzeyinde Mağaza açığa sona erdi.

Bileşenler mağazaya abone olurlar (genellikle Redux'un connect()'u kullanarak otomatik olarak) ve daha sonra gönderim mesajları gönderilebilir ve abone olunan bileşenler tarafından alınabilir.

store.dispatch({ type: 'SET_LOADING_VISIBLE', loadingVisible: true });

+0

Bu çözümle başarıya ulaştın mı? Lütfen benim sorumu burada okumayı düşünün: Ben de Redux kullanıyorum http://stackoverflow.com/questions/37758834/reactjs-expose-react-component-methods-outside-react-tree – AlecPerkey

0

Sahne öğelerini değiştirebilir ve daha sonra ReactDOM.render komutunu tekrar uygulayabilirsiniz, bileşen çalışmaya devam etmeyecek.

+0

nasıl sahne değiştiririm:

const store = createStore(Reducer, { variants, selectedVarient: 0, loadingVisible: false }); window.store = store; ... <Provider store={ store }> <App /> </Provider> 

Bu beni çok gibi konsoldan komutları (ve benzer Tutarlı UI komutları gönderebilir) vermesine olanak sağlar? Bileşen işlevlerini tetikleyebilecek Konsolda (belge düzeyinde) çalıştırabileceğim bir javascript çağrısına ihtiyacım var. –

0

Bu Tepki karşıtı deseni gibi geliyor ama sen componentDidMount içinde bir işlevi tanımlayan düşünebilirsiniz:

componentDidMount() { 
    var that = this; 
    window.toggleLoadingAnimation = function() { 
    that.whateverComponentMethodYouWant(); 
    } 
} 

componentWillUnmount() { 
    window.toggleLoadingAnimation = undefined; 
} 
İlgili konular