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