如何设置 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.isRequiredstore: PropTypes.object 应该做这件事。

如果你有规则 Prop type any is forbidden: eslint(react/forbid-prop-types) store: PropTypes.any (required or not) will只是工作。