Javascript ';道具';未定义内部映射闭包的定义
我得到Javascript ';道具';未定义内部映射闭包的定义,javascript,reactjs,Javascript,Reactjs,我得到类型错误:无法读取未定义的属性“props”。我需要使用我的Li组件来接收道具。顺便说一下,我正在使用样式化组件 const Li = styled.li` border-top: 0 none; `; class Popular extends Component { render() { var languages = ['All', 'Javascript', 'Java', 'Python']; return (
类型错误:无法读取未定义的属性“props”
。我需要使用我的Li
组件来接收道具
。顺便说一下,我正在使用样式化组件
const Li = styled.li`
border-top: 0 none;
`;
class Popular extends Component {
render() {
var languages = ['All', 'Javascript', 'Java', 'Python'];
return (
<ul className='list-group'>
{languages.map(function(lang){
return (
<Li className={`list-group-item p-2 ${this.props.className}`}>
{lang}
</Li>
)
})}
</ul>
);
}
}
export default Popular;
const Li=styled.Li`
边界顶部:0无;
`;
类扩展组件{
render(){
var languages=['All','Javascript','Java','Python'];
返回(
{languages.map(函数(lang){
返回(
-
{lang}
)
})}
);
}
}
出口违约流行;
您需要绑定语言的回调。将映射到流行的类。您可以像这样使用箭头函数
{languages.map((lang) => {
{languages.map(function(lang){
...
}, this)}
{languages.map((function(lang){
...
}).bind(this))}
或者像这样传递这个
作为map函数的第二个参数
{languages.map((lang) => {
{languages.map(function(lang){
...
}, this)}
{languages.map((function(lang){
...
}).bind(this))}
或者,您可以使用如下bind
函数进行绑定
{languages.map((lang) => {
{languages.map(function(lang){
...
}, this)}
{languages.map((function(lang){
...
}).bind(this))}
您需要将语言的回调绑定到流行的类。您可以像这样使用箭头函数
{languages.map((lang) => {
{languages.map(function(lang){
...
}, this)}
{languages.map((function(lang){
...
}).bind(this))}
或者像这样传递这个
作为map函数的第二个参数
{languages.map((lang) => {
{languages.map(function(lang){
...
}, this)}
{languages.map((function(lang){
...
}).bind(this))}
或者,您可以使用如下bind
函数进行绑定
{languages.map((lang) => {
{languages.map(function(lang){
...
}, this)}
{languages.map((function(lang){
...
}).bind(this))}
我想你的问题可能是语言.map(函数(lang)
应该是语言.map((lang)=>)
…我想你的问题可能是语言.map(函数(lang)
应该是语言.map((lang)=>)
…无需调用.bind
,只需将此
作为第二个参数传递给.map
:语言.map(函数(lang){…},此)是的,我忘了。更新了。Thanx这里不需要调用。bind
,你可以把这个作为第二个参数传递给。map
:语言。map(函数(lang){…},这个);
@FelixKling是的,我忘了。更新了。Thanx