import React from 'react'
const AddTodo = ({ onChange, onSubmit, newTodo }) => {
return (
<form>
<textarea
onChange={onChange}
value={newTodo}
/>
<button onClick={onSubmit}>
Save
</button>
</form>
)
}
export default AddTodo
import React, { Component } from 'react'
import AddTodo from './AddTodo'
class Home extends Component {
state = {
todos: [
{
id: '1',
content: 'Lorem ipsum dolor sit amet consectetur.'
}
],
newTodo: ''
}
handleChange = e => {
this.setState({ newTodo: e.target.value })
}
handleSubmit = e => {
e.preventDefault()
let todosArr = [...this.state.todos]
const newIndex = todosArr.length + 1
todosArr.push({ id: newIndex, content: this.state.newTodo })
this.setState({ todos: todosArr, newTodo: '' })
}
render() {
return (
<AddTodo onChange={this.handleChange} onSubmit={this.handleSubmit} />
)
}
}
export default Home
状态正在更新中。但这不是仅在浏览器中更新。
答案 0 :(得分:0)
Home
没有将newTodo
状态传递给AddTodo
组件。
编辑:您不会对该状态做任何事情,因此,在更新状态时,就UI而言,React没有任何作用。
编辑:该行必须是
<AddTodo
newTodo={this.state.newTodo}
onChange={this.handleChange}
onSubmit={this.handleSubmit}
/>