我正在尝试在rx-lite
组件中使用react
。我正在传递Rx.Observable.fromPromise
axios
个http请求。 axios
会返回promise
,因此应找到.then
。这是我的组件。
export default class Home extends Component {
constructor(props) {
super(props);
this.state = {
results: []
}
this.handleOnBlur = this.handleOnBlur.bind(this);
this.handleOnBlurDebounced = this.handleOnBlur.debounce(250, false);
this.getResults = this.getResults.bind(this);
}
componentDidMount() {
this.subscription = Rx.Observable.fromPromise(this.getResults)
.map(res => this.setState({
results: res.data.return
}));
}
componentWillUnmount() {
this.subscription.dispose();
}
getResults() {
return axios.get('/results');
}
handleOnBlur() {
this.subscription.forEach();
}
render() {
...
}
}
在我的componentDidMount
中,我致电this.getResults
。我收到了这个错误。
Uncaught TypeError: this._p.then is not a function
如果我使用this.getResults()
,它会拨打电话,但不会懒惰。我需要做些什么才能使其发挥作用?
答案 0 :(得分:3)
在我的componentDidMount中,我调用
this.getResults
不,如果您没有使用this.getResults()
,则不会调用它。 fromPromise
接受了承诺,而不是你传递的承诺返回函数。