Проблема
Он не показывает элементы внутри item. На данный момент он ничего не отображает.
List.js
import React from 'react';
const List = props => (
<div>
{
props.items.map((item, index) => {
return <div key = {index}>
<h1>{item.name}</h1>
<p>{item.term}</p>
</div>
})}
</div>
);
экспорт списка по умолчанию;
App.js
import React, {Component} from 'react'
import './App.css'
import List from './List';
class App extends Component {
constructor(props) {
super(props);
this.state = {
term: '',
name: '',
items: []
};
}
onChange = (event) => {
const { name, value } = event.target;
this.setState({ [name]: value });
}
onSubmit = (event) => {
event.preventDefault();
this.setState({
term: '',
name: '',
items: [
...this.state.items,
this.state.term,
this.state.name
]
});
}
render() {
const { term, name, items } = this.state;
return (
<div>
<form className = "App" onSubmit = {this.onSubmit}>
<input name = "term" value = {this.state.term} onChange = {this.onChange}/>
<input name = "name" value = {this.state.name} onChange = {this.onChange}/>
<button>Submit</button>
</form>
<List items = {this.state.items} />
</div>
);
}
}





Проблема была в onSubmit, вам нужно преобразовать в объект, а затем добавить
onSubmit = event => {
event.preventDefault();
this.setState({
term: "",
name: "",
items: [...this.state.items, { term: this.state.term, name: this.state.name}]
});
setTimeout(() => { console.info(this.state.items) }, 0)
};
https://codesandbox.io/s/p7p128w7mx
Это работает, спасибо, поэтому мне просто нужно преобразовать в объект, а затем добавить, теперь я вижу.
Приветствую @BARNOWL :)
позвольте мне попробовать.