2017-02-09 80 views
1

當我使用mobx-react,我用注入的裝飾,當我拿到店裏如如何使用@inject綁定函數?

@inject("store") @observer 
class item extends Component { 
    constructor() { 
    this.store = this.props.store; 
    } 
} 

但是,當我想打電話給如store.getUser()store的功能,我發現傳輸store.But的上下文getUser函數不是this,我怎樣才能將this綁定到store

PS:在商店如下列:

class Store { 
    @observable user = "Sarah"; 
    @computed 
    get getUser() { 
    return user + "Ok"; 
    } 
} 
export default new Store(); 

我使用getUser

render() { 
    <div>{this.store.getUser()}</div> 
} 
+0

你可以添加你調用'getUser'的代碼嗎? –

回答

1

您的商店使用this.user

class Store { 
    @observable user = "Sarah"; 
    @computed 
    get getUser() { 
    return this.user + "Ok"; 
    } 
} 
export default new Store(); 

一個computed是一個getter,所以你不能通過函數調用來訪問它。只是取消引用領域:

render() { 
    <div>{this.store.getUser}</div> 
} 
+0

哦,對不起,這是我的lapsus calami,我在我的代碼中使用了'this.user'。 –

+0

@YingchXue我明白了。你可以在你的代碼中添加其餘的'Component'嗎? – Tholle

+0

哦,非常感謝! –

1
class Store { 
    @observable user = "Sarah"; 
    @computed 
    get okUser() { 
    return this.user + "Ok"; 
    } 
} 

const store = new Store(); 
console.log(store.okUser); 

@computed是吸氣,所以你不需要調用它的功能。

+0

謝謝!我是js的新手 –