#javascript #reactjs
#javascript #reactjs
Вопрос:
Не могли бы вы помочь мне решить эту проблему.
Ошибка типа: невозможно уничтожить свойство ‘id’ из ‘this.props.Name «поскольку это не определено.
src/component/Detail.js файл
import React, { Component } from 'react';
import { Character } from './Data_Character/Character';
import Total from './Total';
export default class Detail extends Component {
constructor(props) {
super(props);
this.state = {
names: Character
}
}
render() {
const { names } = this.state;
return(
<div>
{names.map(name => (
<Total key={name.id} Name={name} />
))};
</div>
)
}
}
src/component/Total.js файл
import React, { Component } from 'react';
export default class Total extends Component {
render() {
const { id} = this.props.Name;
return(
<div>
{id}
</div>
)
}
}
src/App.js файл
import React from 'react';
import './App.css';
import Footer from './component/Footer';
import Detail from './component/Page_ความเป็นมา/Detail';
function App() {
return (
<div className="App">
{/* <Navbar /> */}
{/* <Body /> */}
<Detail />
{/* <Detail_Home /> */}
<Footer />
</div>
);
}
export default App;
Ответ №1:
Укажите значение по умолчанию или объект для деструктурирования const { id } = this.props.Name || {};
.
Это еще проще, если вы преобразуете свой Total
компонент в функциональный компонент.
const Total = ({ Name: { id } = {} }) => <div>{id}</div>;
Ответ №2:
Скорее всего, это потому Character
, что у него нет id
поля.
Вы передаете содержимое Character
полностью (через реквизит Name), но содержимое символа должно пропускать id.
Ответ №3:
Вы перебираете данные, полученные от объекта ‘Character’. Чтобы сделать то, что вы делаете, проверьте, находится ли ваш объект ‘Character’ в приведенном ниже формате
Character = [{id: 'id1', name: 'Mark'}, {id: 'id2', name: 'John'}]
Ответ №4:
Character
то, что вы импортируете Detail.js
, не должно id
быть его свойством. Проверьте структуру этой части или символа post.