Node.js ReactJS-警告:未知道具
我创建了一个使用youtube api搜索视频的简单应用程序,但当我使用Node.js ReactJS-警告:未知道具,node.js,reactjs,Node.js,Reactjs,我创建了一个使用youtube api搜索视频的简单应用程序,但当我使用npm start时,它没有给我任何错误,而是给我一个警告warning:Unknown proponItemSearchedon标签。从元件上拆下此道具。 在searchItem中(由listItem创建) 在div中(由listItem创建) 在列表项中 这是我的密码: var React = require('react'); var Item = require('./item.jsx'); var searchIt
npm start
时,它没有给我任何错误,而是给我一个警告warning:Unknown prop
onItemSearchedon标签。从元件上拆下此道具。
在searchItem中(由listItem创建)
在div中(由listItem创建)
在列表项中
这是我的密码:
var React = require('react');
var Item = require('./item.jsx');
var searchItem = React.createClass({
getInitialState : function() {
return {
'queryString' : ''
};
},
handleSearchClicked : function() {
this.props.onItemSearched(this.state);
this.setState({
'queryString' : ''
});
},
handleChangedNameItem : function(e) {
e.preventDefault();
this.setState({
'queryString' : e.target.value
});
},
render : function () {
return (
<div>
<label>
<input id="query" type="text" onChange={this.handleChangedNameItem} value={this.state.queryString} placeholder="Search videos..." />
<button id="search-button" onClick={this.handleSearchClicked}>Search</button>
</label>
</div>
);
}
});
var React=require('React');
var Item=require('./Item.jsx');
var searchItem=React.createClass({
getInitialState:函数(){
返回{
“查询字符串”:”
};
},
handleSearchClicked:函数(){
this.props.onItemSearched(this.state);
这是我的国家({
“查询字符串”:”
});
},
HandleChangedName项目:功能(e){
e、 预防默认值();
这是我的国家({
“queryString”:e.target.value
});
},
渲染:函数(){
返回(
搜寻
);
}
});
这是我显示结果的列表项
var listItem = React.createClass({
getInitialState : function() {
return {
'results' : []
};
},
handleQuerySearch : function(query) {
var req = gapi.client.youtube.search.list({
'part': 'snippet',
'type': 'video',
'q' : encodeURIComponent(query).replace(/%20/g, "+"),
'order' : 'viewCount',
});
//execute request
req.execute((res) => {
var results = res.result;
this.setState({
'results' : results.items
});
});
},
render : function() {
var listItem = this.state.results.map( item => {
return(
<Item title={item.snippet.title} videoid={item.id.videoId} />
);
});
return (
<div>
<searchItem onItemSearched={this.handleQuerySearch} />
<div className="list-item">
{listItem}
</div>
</div>
);
}
});
module.exports = listItem;
var listItem=React.createClass({
getInitialState:函数(){
返回{
“结果”:[]
};
},
handleQuerySearch:函数(查询){
var req=gapi.client.youtube.search.list({
'部分':'片段',
“类型”:“视频”,
“q”:encodeURIComponent(查询)。替换(/%20/g,“+”),
“顺序”:“视图计数”,
});
//执行请求
请求执行((res)=>{
var结果=res.result;
这是我的国家({
“结果”:results.items
});
});
},
render:function(){
var listItem=this.state.results.map(项=>{
返回(
);
});
返回(
{listItem}
);
}
});
module.exports=列表项;
React希望所有组件都以类格式编写。这意味着名称需要大写
searchItem
需要是searchItem
您还可以定义将在搜索项目上接收的道具
var SearchItem = React.createClass({
propTypes: {
onItemSearched: React.PropTypes.func
},
....
});
这可能是什么警告?如果不知道问题出在哪里,就做不了什么;)你能更具体地解释一下吗,我是React的新手,tks u这么多,我已经将searchItem更改为searchItem,但它不起作用:(@m.Tae Awesome!名称更改(大写)是需要发生的,组件上指定的propTypes不是必需的,但它非常好,有助于定义组件。我建议你也继续使用它:):)我会注意到,tks somuch@John