2015-03-03 28 views
8

En temel uygulamayı Flux-React içinde kurmaya çalışıyorum. Tek amacı, Dispatcher aracılığıyla Dispatcher'a kayıtlı bir Mağazaya gönderilen bir Eylemi tetiklemektir. Depo, payload'u Konsole kaydeder.React-Flux: AppDispatcher.register ile hata

Mağaza yanında her şey iyi çalışıyor, ama en kısa zamanda o AppDispatcher.register vurur gibi Akı şu hatayı atar: Burada

Uncaught TypeError: Cannot set property 'ID_1' of undefined 

hataya neden dosyasının kod, ama yukarı koyduk https://github.com/bengrunfeld/react-flux-dispatcher-error de bütün proje ve Çünkü Facebook Flux için İncille oranlarda belgelerin kuraklık src/js/stores/AppStores.js

var AppDispatcher = require('../dispatcher/AppDispatcher'); 
var EventEmitter = require('events').EventEmitter; 
var AppConstants = require('../constants/AppConstants'); 
var assign = require('object-assign'); 


var CHANGE_EVENT = 'change'; 

var AppStore = assign({}, EventEmitter.prototype, { 
    emitChange: function() { 
    this.emit(CHANGE_EVENT); 
    } 
}); 

AppDispatcher.register(function(payload){ 
    console.log(payload); 
    return true; 
}) 

module.exports = AppStore; 
+0

Yukarı youtube video olarak, soru ve burada cevap :) Başka bir video için bekliyorum. –

+0

Eğitim için teşekkür ederiz. Bu harika. Orijinal sürüm çalışıyor, ancak kendi yaptığım zaman. AppStore.js'de değil, kayıt geri çağrısını AppDispatcher.js'ye taşımam gerekiyor. Daha fazla bilgi için: https://github.com/kenpeter/simplest-flux – kenpeter

+0

Merhaba - bir konsol.log'a basmak yerine ana görünümü nasıl güncelleyebilirim? Yani bir json dosyasından başka bir kayıtta çektiği düğmeyi tıkladığımda ve ekranda çıktı aldığımı söyleyelim mi? chees – Dan

cevap

18

kusurlu dosyasını bulabilirsiniz, ben kodunu kullanıyordu bilmiyordum önceki sürümler. İşte

var Dispatcher = require('flux').Dispatcher; 
var assign = require('object-assign'); 

var AppDispatcher = assign(new Dispatcher(), { 
    handleViewAction: function(action) { 
    this.dispatch({ 
     source: 'VIEW_ACTION', 
     action: action 
    }); 
    } 
}); 

module.exports = AppDispatcher; 

çalışma koduyla bir depo bağlantısıdır:

AppDispatcher.js olarak, new anahtar kelimesini kullanarak şu şekilde AppDispatcher tanımlamanız gerekir https://github.com/bengrunfeld/react-flux-simple-app

+0

http://facebook.github.io/flux/docs/overview.html# 'yi arayacağımı bilmiyorum. Tam olarak bir kuraklık içeriği. – fisherwebdev

+6

Kesinlikle buna derim. Youtube'a gidin ve Flux kullanarak basit bir uygulama oluşturma hakkında * bir * öğretici gösterin. Ayrıca Flux hakkında kesin bir resmi dokümantasyon olmasına rağmen, daha fazla elle tutmaya ihtiyaç duyan daha fazla mühendis için değil, “al” tecrübesi olan deneyimli mühendisler için yazılı ve sözlü değildir. Bundan böyle [@rynclark] (https://twitter.com/rynclark) 'nin yorumu - "Eğer benim gibiysen ve Tepki ile daha ileri gitmek istiyorsan, muhtemelen Flux'u kontrol etmiş olursun, Bir bakışta, sekmeyi kapattı ve daha sonra bir Javascript geliştiricisi olarak hayatınızı yeniden değerlendirdi. " – Ben

+1

@fisherwebdev - İlk derste, bir kod bloğu * 86 satırlık bir kod * var. Yeni bir çerçeve öğrenirken, altta yatan kavramları anlamaya çalışırken ve pratik olarak nasıl kullanacağınızı anlamaya çalışırken kimsenin (özellikle yeni ya da genç bir dev) başlarında çok fazla kod tutması gerekiyor? Bu sadece korkutucu. Lütfen dokümanlarınızı yeniden yazmama izin verin ve kullanıcı tabanınız bir haftada üç katına çıkacak. – Ben