1 pièce(s) jointe(s)
Erreur avec Object assign: Cannot convert undefined or null to object
Bonjour,
Tout d'abord je voudrais signaler que je suis débutant avec React.
Le code est une petite todolist d'un tuto.
Pièce jointe 621399
Le probleme rencontré est que l'orsque je clique sur un élément de la liste, la propriété "done" devrait s'inverser entre false et true.
ça ne fonctionne pas lorsque je regarde le state du composant dans chrom.
Pour le moment l'erreur "Cannot convert undefined or null to object" n'apparait plus, mais ça ne fonctionne toujours pas.
le console.log renvoi bien l'objet cliqué mais le state ne se met pas à jour.
J'ai mi le code dans CodeSandbox:
https://codesandbox.io/s/interesting-tharp-ps558o
Est que vous voyez une erreur, ça devrait se situer dans la fonction markDone ?
le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| import React, { Component } from 'react';
import './App.css';
class App extends Component {
constructor(props) {
super(props);
this.state = {
heading: 'Shopping List',
items: [
{ text: 'buy milk', done: false },
{ text: 'go to the dentiste', done: false },
{ text: 'Acheter pa', done: false },
],
};
}
markDone = (todo) => {
let todos = this.state.items.map((t) => {
if (t.text === todo.text) {
console.log(t);
Object.assign({}, t, {
done: !t.done,
});
}
return t;
});
this.setState({ items: todos });
};
render() {
return (
<div className="container">
<br />
<div className="row">
<div className="col-md-6 offset-3">
<h1>{this.state.heading}</h1>
<ul>
{this.state.items.map((item) => (
<li onClick={() => this.markDone(item)} key={item.text}>
{item.text}
</li>
))}
</ul>
</div>
</div>
</div>
);
}
}
export default App;
}, |
mon json:
Code:
1 2 3 4 5 6 7 8
| "dependencies": {
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.3.0",
"@testing-library/user-event": "^13.5.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-scripts": "5.0.1",
"web-vitals": "^2.1.4" |