J'ai un fichier jsx, qui crée <li>
éléments sur le chargement de la page. Ces articles <li>
sont créés en fonction des valeurs de retour ajax.Erreur: this.friendChat n'est pas une fonction (Jquery + Réaction)
Pour chaque élément <li>
, j'ajoute un événement "click" par programme, ce qui appelle une fonction de réaction (friendChat). Mais en mettant en œuvre cela, je reçois l'erreur suivante. (Mais je suis en mesure d'obtenir d'autres propriétés qui initialisés constructeur à l'intérieur..)
- Erreur: this.friendChat est pas une fonction
Après mon fichier JSX.
Merci d'avance.
fichier JSX
import React from 'react'
class Home extends React.Component {
constructor(props) {
super(props);
this.state = {username: "Anu"};
this.friendChat = this.friendChat.bind(this);
}
friendChat(friendId)
{
console.log("Clicked friend id: "+ friendId);
}
componentDidMount() {
console.log('Component DID MOUNT!');
$(document).ready(function(){
$.ajax({
type: "GET",
url: "/friends/myFriends",
success: function(data){
if (data == "No friends")
{
console.log("No friends exist");
document.getElementById('friends').innerHTML = "Please add
friends";
}
else
{
console.log("Friends: "+data);
//Displaying friends in div
for (var i = 0; i < data.length; i++)
{
console.log("Friend: "+ data[i]);
var li=document.createElement("li");
//var br=document.createElement("br");
li.appendChild(document.createTextNode(data[i]));
li.setAttribute("id",data[i]);
console.log(this.state.username);
//It's Printing correctusername (Anu) initialised inside
//the constructor
//Adding on click event for each friend
li.addEventListener("click", function() {
this.friendChat(this.id); }, false);
//Here it's showing the error of this.friendChat is not a
//function
//Appending list item to document
document.getElementById("friends").appendChild(li);
}
}
}.bind(this)
});
}
render() {
return (
<div>
<div className="home_recentfriends">
<ul id="friends"></ul>
</div>
</div>
)
}
}
export default Home
double possible de [? Comment accéder au bon \ 'cette \' l'intérieur d'un rappel] (https://stackoverflow.com/questions/20279484/how-to-access- le-correct-ce-dans-un-callback) – Li357
Pourquoi vous utilisez javascript pure dans une requête ajax jquery si vous utilisez jquery, suivez jquery mais n'utilisez pas jquery et javascript dans la même fonction, cela provoque des erreurs comme la vôtre –
It expliqué très bien. Merci @Andrew Li. – abhilash