Redux 如何使用URL中的路由参数执行axios get请求?

Redux 如何使用URL中的路由参数执行axios get请求?,redux,react-redux,axios,Redux,React Redux,Axios,因此,我有一个action creator,希望从API端点获取数据 以下工作: export function getData(){ return function(dispatch){ axios.get('/api/form/myuser/mytitle').then( (res) => { console.log(res.data); return dispatch(retrieve(res.data))

因此,我有一个action creator,希望从API端点获取数据

以下工作:

export function getData(){
    return function(dispatch){
        axios.get('/api/form/myuser/mytitle').then( (res) => {
            console.log(res.data);
            return dispatch(retrieve(res.data))
        })
        .catch( (err) => {
            console.log(err)
        })
    }
}
然而,在我的例子中,API端点发生了变化。 我首先向这个URL发出服务器请求:
/api/form/:userId/:title
然后,我真正想做的是在我的客户端使用axios get请求创建上述动作,如下所示:

axios.get('/api/form/:userId/:title')
这里的控制台日志显然不返回标题字符串,它返回
:title


有可能做我想做的事吗?如果没有,还有什么建议吗?

好的,我找到了答案:)

解决方案在于反应路由器。在此之前,我对react路由器不够熟悉

诀窍是在路由路径中定义参数,无论它位于何处(存储区或定义所有路由的文件),如下所示:

<Route path = "form/:userId/:formtitle" component = {Form} />
this.props.getData (this.props.params.userId, this.props.params.formtitle)
为了让动作创建者可以使用上述道具,您可以将它们用作组件中触发的动作创建者的参数,如下所示:

<Route path = "form/:userId/:formtitle" component = {Form} />
this.props.getData (this.props.params.userId, this.props.params.formtitle)

这里有更多详细信息:

我认为模板字符串可以很好地解决您的问题。请不要犹豫使用Alt Gr+7:)

小心使用未定义的值


所以您希望动态格式化字符串,因为url对于每个请求都不相同?