Постоянство данных между бэкэндом React / Redux и Rails API - PullRequest
0 голосов
/ 16 января 2019

Когда я отправляю данные вместе с моей формой, данные, похоже, не отправляются в базу данных. Не уверен, что моя проблема связана с моим actionCreators или что-то в моем бэкэнде?

Я использую Rails API в качестве моей конечной точки, и у меня установлена ​​ассоциативная принадлежность между моими комментариями и моделями мест.

Ниже приведен код из моего файла actionCreators.js:

 <div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>import fetch from 'isomorphic-fetch'

// add comment
function addComment (id, author, comment) {

  return {
    type: 'ADD_COMMENT',
    id,
    author,
    comment
  }
}

// remove comment
function removeComment (id, i) {
    return {
      type: 'REMOVE_COMMENT',
      id,
      i
    }
  }
  
  // fetch places
  function fetchPlaces () {
    return dispatch => {
      dispatch({type: 'FETCH_PLACES'})
      fetch('http://localhost:3000/api/places')
      .then(response => response.json())
        .then(json => dispatch({
        type: 'RECEIVED_PLACES', 
        payload: json
        }))
      .catch((err) => {
        dispatch({type: 'FETCH_PLACES_ERROR', payload: err})
      })
  }
}

function postComment(id, author, comment) {
  
  return dispatch => {
    dispatch({type: 'FETCH_COMMENTS'})
    return fetch('http://localhost:3000/api/comments', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({ comment: {text: comment, user: author}
      })
    })
    .then(response => response.json())
      .then(json => dispatch({
      type: 'RECEIVED_COMMENTS', 
      payload: json
      }))
    .catch((err) => {
      dispatch({type: 'FETCH_COMMENTS_ERROR', payload: err})
    })
  }
}


function fetchComments(id, author, comment) {
  return dispatch => {
    dispatch({type: 'FETCH_COMMENTS'})
    fetch('http://localhost:3000/api/comments')
    .then(response => response.json())
      .then(json => dispatch({
      type: 'RECEIVED_COMMENTS', 
      payload: json
      }))
    .catch((err) => {
      dispatch({type: 'FETCH_COMMENTS_ERROR', payload: err})
    })
  }
}
...