Gần đây chúng tôi đã chuyển sang React + Flux từ Angular để xây dựng một ứng dụng kinh doanh khá phức tạp.React + Flux: Bắt trạng thái ban đầu thành một cửa hàng
Lấy cách tiếp cận của việc có một thành phần container chuyển tất cả trạng thái vì thuộc tính xuống cây thành phần không phải là cách thiết thực để phát triển ứng dụng cho chúng tôi khi ứng dụng sử dụng các phương thức lớn như trang. Đủ trạng thái không được chuyển xuống các phương thức để họ tải dữ liệu của họ vào các cửa hàng của họ.
Vấn đề tôi có là tôi cần lấy một số trạng thái ban đầu (chuyển xuống dưới dạng đạo cụ) vào cửa hàng của thành phần phương thức. Trong this post những người tốt trên Facebook nói rằng nó ok để sử dụng đạo cụ cho trạng thái ban đầu khi đồng bộ hóa không phải là mục tiêu.
Đây là cách tôi nhận được tình trạng ban đầu vào cửa hàng của tôi hiện:
var ABC = React.createClass({
...
getInitialState: function() {
return ABCStore.getInitialABCState(this.props.initialA);
},
...
var ABCStore = Reflux.createStore({
...
init: function() {
_state = {
a: null,
b: 'B init',
c: 'C init'
};
},
getInitialABCState: function(initialA) {
_state.a = initialA;
return _state;
},
getABCState: function() {
return _state;
}
...
Tôi không chắc chắn những gì các thực hành tốt nhất là để làm điều này, hoặc cho dù đây là một anti-pattern Flux?
Nó cảm thấy như bạn đang ở trên mép chống mẫu với cửa hàng đó. Tuy nhiên, điều tuyệt vời về Flux là đó là một khái niệm kiến trúc hơn là một thành phần. Điều này có nghĩa là bạn có thể tạo các cửa hàng theo nhiều cách và giữ nó trong tinh thần Flux, trong một dự án tôi đã làm việc, chúng tôi chỉ sử dụng bộ điều phối từ thư viện Flux, có nghĩa là cửa hàng không được khởi tạo như ví dụ của bạn.Cửa hàng chỉ điền chính nó khi cần dữ liệu (hành động từ các thành phần hoặc bộ định tuyến). Tôi không nghĩ rằng ví dụ của bạn là thực hành xấu, nhưng nó mở ra một cuộc thảo luận tuyệt vời. – magnudae
Vâng, tôi hy vọng sẽ khuấy động một số cuộc thảo luận, vì tôi cũng có cảm giác này, nhưng tôi cần nhiều thứ cụ thể hơn :) –