当我在浏览器上运行我的应用程序时,我会进入控制台:
“警告:失败的propType:为‘路由’提供的prop‘组件’无效”
我的路由文件:
import { Route, IndexRoute } from 'react-router';
import React from 'react';
import App from './container/App';
import PContainer from './container/PContainer/PContainer';
import PView from './container/PView/PView';
const routes = (
<Route path="/" component={App} >
<IndexRoute component={PContainer} />
<Route path="/Posts View" component={PView} />
</Route>
);
export default routes;
我的PView文件:
import React, { Component, PropTypes } from 'react';
import { connect } from 'react-redux';
class PView extends Component {
render() {
return (
<div>
<h1>List of Posts</h1>
</div>
);
}
}
export default connect()(PView);
有人能告诉我为什么会出现这个错误吗?
最近,我经历了这一期。我发现,如果你有任何导入的组件是空的或什么也不返回,那么就会出现这个问题,因为反应不能将其视为有效的组件。
看看你是否有任何你可能留下空的组件。
确保App、PContainer和PView都是有效的React组件。检查模块的导入和导出。导出应使用“default”,否则应使用命名的导入:import{somecomp}from'/somecomp'
。检查到组件的路由。
您的路由看起来有点奇怪:'。/容器/PContainer/PContainer'
和'。/容器/PView/PView'
。
如果您没有PContainer和PView文件夹,也许应该是'./容器/PContainer'
和'./容器/PView'
。
我遇到了和你一样的问题。
当我将connect()组件放入
解决方案
你可以改变路线
<Route path="/Posts View" component={PView} />
到
<Route path="/Posts View" render={(props) => <PView {...props} />} />
那问题就应该解决了。
思考
看看React-router的文档
当您有要呈现的现有组件(React.component或无状态函数组件)时,应该使用组件。render采用内联函数,仅当必须将作用域变量传递给要渲染的组件时才应使用。
因此,当您想要定义connect()组件的路由时,您将隐式地向其中传递一些附加的道具,然后根据文档,您应该使用render而不是component。我想这就是警告发生的原因。
警告:失败的prop类型:提供给PadView的prop无效。 嗨,我是新来的react native,红色消息一直显示,但一切看起来都很好,应用程序呈现正确,但红色消息一直显示在终端上,你们知道这不是什么意思吗,谢谢你们的帮助。
我得到这个错误: index.js:1375警告:失败的道具类型:提供给的道具无效。 我在我的应用程序中使用了一个外部组件,它是从github获得的,可以在后台渲染视频。这里是链接。https://github.com/samAbeywickrama/reactjs-videobg 它与proptypes有关,但由于它的遗留和react建议使用flo,所以我根本不使用类型检查。
https://gist.github.com/js08/dfeab2df8b68240297eb > 我正在尝试为jsx文件编写测试用例 在这方面,我能够通过proptypes 但不是在我顺利通过的地方 我在运行测试用例时出错 下面提供我的错误、测试用例和代码 警告:失败的道具类型:提供给的无效道具 我不知道该怎么做 发生在这次活动中 你能告诉我应该如何把它放在我的测试用例中吗 警告:失败的道具
我尝试动态渲染图像。但我得到了这个错误。动态获取图像源并进行渲染的解决方案是什么? 主要组成部分。js 卡片详情。js 我也尝试过其他方法,但没有成功。我在使用此方法时遇到此错误: 未知命名模块 主要组成部分。js 卡片详情。js
我有这个警告在我的项目:警告:失败的道具类型:无效的道具<代码>源代码提供给<代码>图像。我加载图像从sampleProducts.jsonRecommendend.js并通过它作为道具在Products.js,但图像不会加载,因为警告。 样本产品。json 建议。js 产品。js
我收到警告“警告:失败的道具类型:提供给的类型为