2016-10-11 50 views
0

我不明白爲什麼這是在控制檯中投擲Cannot convert a Symbol value to a string。我正在使用React v15和jQuery v3。無法將符號值轉換爲字符串 - 反應AJAX刪除請求

enter image description here

這裏是我的陣營代碼:

var CommentList = React.createClass({ 
    handleDelete: function(comment) { 
    console.log(comment); 
    $.ajax({ 
     url: this.props.url, 
     dataType: 'json', 
     type: 'DELETE', 
     data: comment, 
     contentType:'application/json', 
     dataType: 'text', 
     success: function(data) { 
     this.setState({ data: data }); 
     }.bind(this), 
     error: function(xhr, status, err) { 
     this.setState({data: comments}); 
     console.error(this.props.url, status, err.toString()); 
     }.bind(this) 
    }) 
    }, 
    render: function() { 
    var commentNodes = this.props.data.map(comment => { 
     return(
     <div key= { comment.id }> 
      <Comment author = { comment.author }> 
      { comment.text } 
      </Comment> 
      <button onClick={this.handleDelete}>delete</button> 
     </div> 
    ); 
    }); 
    return (
     <div className="commentList"> 
     {commentNodes} 
     </div> 
    ); 
    } 
}); 

JSON文件看起來像:

[ 
    { 
     "id": 1388534400000, 
     "author": "Pete Hunt", 
     "text": "Hey there!" 
    }, 
    { 
     "id": 1323434400000, 
     "author": "Ben Jerry", 
     "text": "I did a thing" 
    }, 
    ... 
    ... 
] 
+0

'error'回調的'err'變量是什麼? – Sojtin

回答

0

您還沒有傳遞到handleDelete的評論,它實際上是收到點擊事件。你只需使用評論ID就可以逃脫。嘗試使用列表渲染器:

<div key= {comment.id}> 
    <Comment author ={comment.author}> 
    {comment.text} 
    </Comment> 
    <button onClick={this.handleDelete.bind(this, comment)}>delete</button> 
</div> 
+0

謝謝,你是正確的,它沒有通過實際的評論。我更新了我的代碼,它傳遞了正確的信息,但現在它在ajax調用中拋出了「undefined」錯誤「Bad Request」。 – itsclarke

+0

這意味着'this.props.url'是未定義的,根據您的代碼,這可以解釋不好的請求。 –

+0

感謝您的幫助 – itsclarke