无法设置未定义的属性“ x”

时间:2019-10-12 09:17:43

标签: javascript reactjs mobx mobx-react

我想在商店设置变量。 这是我的商店

class storeCategory{

    @observable categories =[];

    @action getCategories = () =>{
        fetch('http://localhost:3000/categories')
        .then((resp) => resp.json())
        .then(function(resp2){
            this.categories=resp2;
        });
    }


}

这是我的组件

@inject('sCategory')
@observer
class Category extends React.Component{

    componentDidMount=()=>{
       this.props.sCategory.getCategories();
    }

    render(){
        const {sCategory} = this.props;
        return (
            <ListGroup>
                {this.props.sCategory.categories.map((cat, index) => {
                            return (
                                <ListGroupItem key={cat.id}>{cat.categoryName}</ListGroupItem>
                            )
                        })}
            </ListGroup>
          );
    }
}

我将 sCategory 添加到index.js的提供商

在获取方法中 this.categories = resp2 出现此错误;

  

无法设置未定义的属性“类别”

1 个答案:

答案 0 :(得分:0)

改为使用箭头功能:

@action getCategories = () =>{
    fetch('http://localhost:3000/categories')
    .then((resp) => resp.json())
    .then((resp2) => {
        this.categories=resp2;
    });
}`

function关键字将“ this”关键字绑定到自身,但是箭头功能将其绑定到上下文