私はバニラリアクションUIコンポーネントライブラリとMobXをアプリケーションの状態管理として使用しています。私がデータとして配列の観測値を持っていて、コンポーネント(mobx-react
observer
)からUIライブラリのコンポーネント(小道具がPropTypes.array
の型)に渡す場合、コンポーネントはそれを観測可能な配列はオブジェクトであり、配列ではありません。配列のMobX @ ObservableをReactコンポーネントProptypes.arrayのコンポーネントpropsに渡す
// 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
で変更に反応しますか? mobx配列は、実際のオブジェクトであるため、https://github.com/mobxjs/mobx-react#proptypes
他の方法はないと思います。 –