React-Native 16 Alpha 12迁移PropTypes

时间:2017-08-29 11:17:07

标签: javascript reactjs react-native react-proptypes

我的世博会XDE在新创建的项目上发出以下警告:

  

1:37:35 PM警告: checkPropTypes已移至单独的   包。不再支持访问React.checkPropTypes   将在React 16中完全删除。使用prop-types包   npm而不是。

     

1:37:35 PM警告:不再支持React.createClass。用一个   相反,简单的JavaScript类。如果您尚未准备好迁移,   在npm上可以使用create-react-class作为替代品。

     

1:37:35 PM警告: PropTypes已移至单独的包中。   不再支持访问React.PropTypes,将被删除   完全在React 16中。在npm上使用prop-types包。

Migrating Prop-Types

即使我的代码似乎很好..有谁知道为什么我仍然收到此消息或以下代码有什么问题?

代码

import React, {Component} from 'react';
import Root from './src/Root';
import {View} from 'react-native';
import PropTypes from 'prop-types';

class App extends Component {
  render() {
    return (<View />);
  }
}

App.PropTypes = {}

export default App;

的package.json

{
  "name": "WeDo",
  "version": "0.1.0",
  "private": true,
  "devDependencies": {
    "react-native-scripts": "1.2.1",
    "jest-expo": "~20.0.0",
    "react-test-renderer": "16.0.0-alpha.12"
  },
  "main": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
  "scripts": {
    "start": "react-native-scripts start",
    "eject": "react-native-scripts eject",
    "android": "react-native-scripts android",
    "ios": "react-native-scripts ios",
    "test": "node node_modules/jest/bin/jest.js --watch"
  },
  "jest": {
    "preset": "jest-expo"
  },
  "dependencies": {
    "expo": "^20.0.0",
    "prop-types": "^15.5.10",
    "react": "16.0.0-alpha.12",
    "react-native": "^0.47.0"
  }
}

2 个答案:

答案 0 :(得分:1)

App上的媒体资源应为propTypes而不是PropTypes。但是,您仍然在对象中使用PropTypes

例如:

App.propTypes = {
  name: PropTypes.string.isRequired
}

答案 1 :(得分:0)

您可以使用https://github.com/reactjs/react-codemod#react-proptypes-to-prop-types将React.PropTypes中的导入替换为&#39; prop-types&#39;