【发布时间】:2017-05-22 17:06:27
【问题描述】:
所以我在我的应用程序中使用了一个普通的 React UI 组件库和 MobX 作为状态管理。当我有一个可观察的数组作为数据并且我想将它从我的组件(这是一个mobx-reactobserver)传递到 UI 库的组件(它的 prop 是 PropTypes.array 的类型)时,组件拒绝它说我的可观察数组是一个对象,而不是一个数组。
// my store
class Store {
@observable data = [...];
}
// my component
@inject('store')
@observer
class MyComponent extends React.Component {
...
render() {
const {store} = this.props;
return <LibComponent data={store.data} />
}
}
// library's component
class LibComponent extends React.Component {
static propTypes = {
data: PropTypes.array,
....
}
}
我在类似的question 中读过关于使用来自 mobx 的 toJS 的信息,但是还有其他方法可以解决这个问题吗?由于我不是 UI 库的所有者,因此我无法添加该问题中提到的 mobx-react 包中的 PropTypes 验证作为答案。 UI 库是否会以 toJS 作为其 prop 的输入来响应更改?
【问题讨论】:
-
我想别无他法。
标签: reactjs mobx mobx-react