好吧,这段代码在控制台中引发错误 - " PropTypes未定义",因此应用程序无法呈现。任何想法在配置甚至代码中有什么问题?如果重要的话,我不会使用eslint。
<div>
<% for(var i=0; i<data.length; i++) {%>
<div class="tweet">
<p class="tweetTime"><%= data[i].unix_timestamp%></p>
<p class="tweetName"><%= data[i].screen_name%></p>
<p class="tweetMessage"><%= data[i].cleaned_tweet%></p>
<p class="tweetLocation"><%= data[i].user_location%></p>
</div>
<% } %>
</div>
然而,这可以按预期工作(在组件之后):
import React, { Component } from 'react';
import PropTypes from 'prop-types';
export default class Movie extends Component {
static propTypes = {
movie: Proptypes.shape({
title: Proptypes.string.isRequired
})
};
static defaultProps = {
description: 'Description is not available'
}
render() {
return (
<div>
<h3>{this.props.movie.title}</h3>
</div>
)
}
}
package.json配置:
Movie.propTypes = {
movie: PropTypes.shape({
title: PropTypes.string.isRequired
})
}
.babelrc配置:
{
"dependencies": {
"babel-polyfill": "^6.26.0",
"live-server": "^1.2.0",
"normalize.css": "^8.0.0",
"prop-types": "^15.6.1",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-router-dom": "^4.2.2",
"redux": "^3.7.2"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.0",
"babel-loader": "^7.1.4",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-preset-env": "^1.6.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-0": "^6.24.1",
"css-loader": "^0.28.11",
"node-sass": "^4.8.3",
"sass-loader": "^6.0.7",
"style-loader": "^0.20.3",
"webpack": "^4.3.0",
"webpack-cli": "^2.0.13"
}
}
webpack.config.js
{
"presets": [
"env",
"react",
"stage-0"
],
"plugins": [
"transform-class-properties"
]
}
答案 0 :(得分:1)
你这里有一个错字: -
static propTypes = {
movie: Proptypes.shape({
title: Proptypes.string.isRequired
})
};
应该是: -
static propTypes = {
movie: PropTypes.shape({
title: PropTypes.string.isRequired
})
};