react-redux中这两个回调之间有什么区别?

时间:2017-04-30 10:18:46

标签: reactjs promise redux react-redux

我正在学习使用Udemy课程的react-redux。符合此代码,

 export function createPost(value, callback){
       const request = axios.post(url, value).then(() => callback());
    }

为什么不把这样的回调放到

const request = axios.post(url, value).then(callback);

编辑

在视频中他们称之为此功能

this.props.createPost(value, () => this.props.history.push('/'));

2

因为他们被this.props.createPost(value, () => this.props.history.push('/'));

打来了

我认为回调已经是一个功能 () => this.props.history.push('/');

那么为什么他们在createPost

Promise.then(() => callback())定义中再次回调回调

在我看来,只需将Promise.then(callback)之类的回调放好。

我错了吗?

1 个答案:

答案 0 :(得分:1)

如果你仔细看看你的函数调用需要一个参数,这意味着如果你在末尾添加括号,它将被立即调用:

this.props.history.push('/')

如果您尝试这样做:

this.props.createPost(value, this.props.history.push('/')); // without the () =>

函数history.push将立即被调用,你正在做的是上下文绑定,通过创建一个lambda函数来延迟执行并添加一个常量参数'/'

实现这一目标的另一种方法:

this.props.createPost(value, this.props.history.push.bind(null, '/')

阅读Bind

如果你的功能没有采取任何参数,那么你可以按照你的意愿去做(没有括号c)

this.props.createPost(value, this.props.anotherFunction) // anotherFunction does not take any params, and does can be passed as is