【发布时间】:2016-07-21 16:46:11
【问题描述】:
我正在创建一个使用 Redux 架构处理状态的组件(是的,从定义上讲这可能很糟糕,因为组件应该将状态委托给应用程序,但无论如何)。
这个组件接受不同的props。当我必须处理回调时,我的问题就出现了。让我们举一个实际的例子来更好地描述这一点。
假设我们需要一个像<App onSubmit={() => {}} /> 这样的组件。
我们可以在组件mount时创建一个商店,这样所有内部组件都可以调度操作/订阅更改等。
尝试可能是有一个名为submit() 的操作。这样,商店就会知道要应用更改,因此任何订阅者都会知道并且有人会调用此onSubmit回调。
所以代码看起来像:
class App extends Component {
constructor (props) {
super(props)
this.subscriber = this.subscriber.bind(this)
}
componentWillMount() {
this.store = createStore()
this.store.subscribe(this.subscriber)
}
subscriber (action) {
if (action.type === 'submit')
this.props.onSubmit()
}
render () {
return (
<Provider store={this.store}>
<FooComponent />
</Provider>
)
}
}
问题在于,虽然在调度的每个动作上都会调用subscriber,但订阅者不知道最后调度的动作是什么。所以没有办法知道什么时候打电话给onSubmit。
- 如何使用
subscriber了解店铺的变化? - 我应该停止在这里尝试 redux 架构吗?
【问题讨论】:
标签: javascript reactjs redux