我使用redux,但是当我运行我的代码我有这个错误:
Accessing PropTypes via the main React package is deprecated. Use the
prop-types package from npm instead.
我安装
npm i prop-types -S
但我仍然有同样的错误.
./components/action/article.js
import * as ArticleActionTypes from '../actiontypes/article'; export const AddArticle = (name,description,prix,image) => { return { type: ArticleActionTypes.ADD_ARTICLE,name,image } } export const RemoveArticle = index => { return { type: ArticleActionTypes.REMOVE_ARTICLE,index } }
./components/actiontypes/article.js
export const ADD_ARTICLE = 'article/ADD_ARTICLE'; export const REMOVE_ARTICLE = 'article/REMOVE_ARTICLE'; export const UPDATE_ARTICLE = 'article/UPDATE_ARTICLE';
./components/reducers/article.js
import * as ArticleActionTypes from '../actiontypes/article'; const initialState = [ { name: 'test',description: 'test',prix: 'test',image: 'url' },{ name: 'test',prix: test,image: 'url' } ] export default function Article (state=initialState,action){ switch(action.type){ case ArticleActionTypes.ADD_ARTICLE : return [ ...state,{ name: action.name,description: action.description,prix: action.prix,image: action.image } ]; case ArticleActionTypes.REMOVE_ARTICLE : return [ ...state.slice(0,action.index),...state.slice(action.index +1) ] ; default: return state; } }
index.js
import React from 'react'; import { render } from 'react-dom'; import {Provider} from 'react-redux'; import {createStore} from 'redux'; import ArticleReducer from './components/reducers/article'; import scoreboard from './components/containers/scoreboard'; const store = createStore( ArticleReducer,window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() ) render(<Provider> <scoreboard store={store}/> </Provider>,document.getElementById('root'));
./components/containers/Scorboard.js
import React from 'react'; import {connect} from 'react-redux'; import {bindActionCreactors} from 'redux'; import PropTypes from 'prop-types'; class scoreboard extends React.Component { render(){ return ( <div> scoreboard </div> ) } } const mapStateToProps = state => { { articles :state } } scoreboard.propTypes = { articles: PropTypes.array.isrequired } export default connect(mapStateToProps)(scoreboard);