使用Axios从React / Redux App发送参数

时间:2016-08-17 05:43:48

标签: express reactjs redux rethinkdb axios

我正在努力了解如何将params纳入axios.post请求?关于我的应用程序到目前为止的一点点:

我有一个与RethinkDB实例交谈的快速应用程序。我还有一个独立的React / Redux应用程序。我可以在我的动作创建者中使用axios.get成功点击我的快速终点,并在React Component中显示数据(用户)。但是,现在我尝试将params发送到我的快速应用程序中的另一条路径,并将其保存在rethinkdb数据库中。我暂时不关心身份验证。我正确地在快速方面进行设置,并且可以通过curl从快递应用程序中将虚拟用户保存到数据库,但是我不知道如何使用来自反应应用程序/反应的请求发送所需的参数形成。请在下面找到一些相关的代码。

从我的Express App API中,手动成功点击后,将测试用户保存到数据库中。

var TestUser = thinky.createModel("TestUser", {
  id: String,
  name: String,
  email: String,
})

router.get('/newUser', (req, res) => {
  TestUser.save({
    name: 'sawyer',
    email: 'sawyer@test.com'
  }).then((result) => {
    console.log('Saved!')
    res.send(result)
  })
})

..及以下是我在单独的React and Redux App中的操作文件中的代码段。说实话,我并不确定写它并包含user对象。

function addUser (user) {
  return {
    type: ADD_USER,
    user,
  }
}

export function addAndSaveUser (user) {
  return function (dispatch) {
    return dispatch(addUser(user)).then({
      axios.post("http://localhost:3000/users/newUser", )
    })
  }
}

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

user对象作为第二个参数传递

axios.post("http://localhost:3000/users/newUser", user)

成功创建动作后,最好发送addUser动作。

export function addAndSaveUser (user) {
  return function(dispatch) {
    axios.post("http://localhost:3000/users/newUser", user).then(res => {
      dispatch(addUser(res.data));
    });
  };
}

答案 1 :(得分:0)

redux-thunk能够使用 withExtraArgument 方法

添加其他参数
libray(ggplot2)

ggplot(mpg, aes(factor(fl)))+
  geom_bar()

您可以在这里Axios as an extra parameter for redux-thunk

了解更多信息