什麼是標準的React + Flux方式來識別觸發狀態變化的ID組件?如何識別觸發React + Flux狀態變化的組件?
我有一個應用程序,允許用戶使用HSL顏色空間創建調色板。
這裏是我的應用程序的組件結構:
Container (this component gets state and passes it down the chain)
| PalettePicker
| ColorPicker
| Slider (this component fires action)
| Slider
| Slider
| (As many ColorPickers as colors)
| ImageSamples (not relevant, but dependent on palette)
下面就來看看在ColorPicker
組件:
每個ColorPicker
包含3個Slider
組件,其觸發更新存儲事件。然後,商店更新調色板並將整個調色板向下傳遞到Container
組件,該組件將其作爲props
傳遞給其子組件。
這裏是我的功能,在我Store
(我使用迴流)處理一個滑塊變化事件:
sliderChange: function(newValue) {
var modifiedPalette = this.palette;
modifiedPalette[newValue.colorIndex][newValue.colorPartsIndex] = newValue.value;
this.trigger(modifiedPalette)
}
我的調色板是HSL顏色值的數組,所以像:
[ [350, 100, 50], [340, 100, 40], ... ]
「顏色」是上述三項數組之一,我將顏色數組中的每個項目稱爲「顏色部分」,因爲它代表顏色的H,S或L。
通過顏色和顏色部分索引作爲道具似乎不雅。我目前正在建設的組成部分是這樣的:
colorPickers = palette.map(function(color, i) {
return (
<ColorPicker
key={i}
colorIndex={i}
color={color}
/>
)
});
至於我可以告訴大家,我需要通過colorIndex
作爲道具,這樣我的孩子組件可以知道它映射的顏色調色板,以讓我可以將這些知識傳遞給商店。
什麼是常用的React + Flux方式來做到這一點?
使用colorIndex很好。不應該顏色= {this.props.palette [i]}是顏色= {顏色},但。 –
謝謝,應該是{color} –
@MattParrilla,這取決於你可以一次修改多少種顏色。如果只有一個 - 比你可以在商店中保留'currentColor'屬性並且通過顏色索引道具。但是如果你可以修改多個collors - 比你擁有一個2-store-view關係,並且我沒有看到更好的方法。其實,你爲什麼覺得這樣很不雅? –