如何设置 mobx 商店的 PropType?
How to set the PropType of a mobx store?
我在这里使用:React, ESLint, Mobx.
我不确定如何正确设置我通过 Provider 传递的 mobx 商店的 PropType。
ESLint 给我这个 error:
[eslint] store is missing in props validation (react/prop-types)
我路过一家商店 Provider
是这样的:
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
appLocation
);
在 App
组件中我使用了其中一个存储值,
这是我的 mobx 商店:
import { observable } from 'mobx';
class Store{
@observable x = 'Hello World!';
}
export const store= new Store();
这是我的 App 组件:
// Dependencies
import React from 'react';
import { inject, observer } from 'mobx-react';
import PropTypes from 'prop-types';
// Components
import TestComponent from './TestComponent';
// App Component
@inject('store')
@observer
export default class App extends React.Component {
render() {
return (
<div>
<TestComponent store={this.props.store} /> // the Error above
</div>
);
}
}
App.propType = {
store: PropTypes.any // What is the correct way to set this prop?
};
你有一个小错字。是propTypes
,不是propType
:
@inject('store')
@observer
export default class App extends React.Component {
static propTypes = {
store: PropTypes.any
};
render() {
return (
<div>
<TestComponent store={this.props.store} />
</div>
);
}
}
store: PropTypes.object.isRequired
或 store: PropTypes.object
应该做这件事。
如果你有规则 Prop type any
is forbidden: eslint(react/forbid-prop-types) store: PropTypes.any
(required or not) will只是工作。
我在这里使用:React, ESLint, Mobx.
我不确定如何正确设置我通过 Provider 传递的 mobx 商店的 PropType。
ESLint 给我这个 error:
[eslint] store is missing in props validation (react/prop-types)
我路过一家商店 Provider
是这样的:
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
appLocation
);
在 App
组件中我使用了其中一个存储值,
这是我的 mobx 商店:
import { observable } from 'mobx';
class Store{
@observable x = 'Hello World!';
}
export const store= new Store();
这是我的 App 组件:
// Dependencies
import React from 'react';
import { inject, observer } from 'mobx-react';
import PropTypes from 'prop-types';
// Components
import TestComponent from './TestComponent';
// App Component
@inject('store')
@observer
export default class App extends React.Component {
render() {
return (
<div>
<TestComponent store={this.props.store} /> // the Error above
</div>
);
}
}
App.propType = {
store: PropTypes.any // What is the correct way to set this prop?
};
你有一个小错字。是propTypes
,不是propType
:
@inject('store')
@observer
export default class App extends React.Component {
static propTypes = {
store: PropTypes.any
};
render() {
return (
<div>
<TestComponent store={this.props.store} />
</div>
);
}
}
store: PropTypes.object.isRequired
或 store: PropTypes.object
应该做这件事。
如果你有规则 Prop type any
is forbidden: eslint(react/forbid-prop-types) store: PropTypes.any
(required or not) will只是工作。