Bağlam: Widget tabanlı bir web uygulaması geliştiriyorum (kullanıcıların igetirmek istedikleri iGoogle seçenleri gibi). Her widget bir React bileşenidir.Adına göre bir Yanıt Oluşturma bileşeni oluşturma
Basitleştirilmiş örnek: Sistem sebat katmandan tercihlerimi aldığında İşte 2 farklı widget
var HelloWidget = React.createClass({
render: function() { return <div>Hello {this.props.name}</div>; }
});
var HiWidget = React.createClass({
render: function() { return <div>Hi {this.props.name}</div>; }
});
Bir kullanıcı olarak, ben HiWidget seçmiş ve benim adım "dostum" bu yüzden benziyor Bu: Ben bir dize var adını olduğunda
var dataFromDb = {
type: 'HiWidget',
name: 'dude'
};
Nasıl bir bileşeni tepki işleyebilen?
Ben Dynamically Rendering a React component dayanarak, bu çalıştı:React.render(
<dataFromDb.type name={dataFromDb.name} />,
document.getElementById('try2')
);
O 0.11 Tepki çalışmak için kullanılan, ama artık değil.
Ve dev switch deyimi zorunda kalmamak için istiyorum: Sen bileşen türü için arama olarak bir nesneyi kullanmak ve tutmak http://jsfiddle.net/61xdfjk5/
Neden pencerenin [...] 'nin burada gerekli olduğunu anlamıyorum! DataFromDb.name işlevi iyi çalıştığından, "window [...]" ı kaldırırsam artık çalışmaz. – al8anp
@ al8anp Pencereye [...] ihtiyacınız var, çünkü bu şekilde sınıfa başvurursunuz, "dataFromDb.name" sadece sınıf adının bir dize gösterimidir. React.createElement (...), sınıfı birinci argüman olarak bekliyor – Vadim