[英]OnChange Handler ReactJS?
我有一個組件,我將它導入到我的App.js
文件中並嘗試設置值和一個onChange
方法,我將其作為道具傳遞,但不確定為什么這不起作用。 這是結構的樣子:-
這是我的 app.js 文件:-
import React, { Component } from 'react';
import './App.css';
import Nested from './Nested.js'
class App extends Component {
state = {
childState: {
title: 'New Title',
}
}
updateTitle = (e) => {
const rows = [...this.state.childState];
rows.title = e.target.value
this.setState({
rows,
});
}
render() {
return (
<div className="App">
<Nested
title = { this.state.childState.title }
updateTitle = {this.updateTitle.bind(this) } />
</div>
);
}
}
export default App;
這是我的嵌套組件:-
import React from 'react'
const Nested = (props) => {
return (
<div>
<input value = { props.title } onChange = { props.updateTitle }></input>
</div>
)
}
export default Nested;
如果有人能指出我在上面的updateTitle
做錯了什么,我將不勝感激。 謝謝你。
你犯的第一個錯誤是this.state.childState
是一個對象,你將它傳播到[]
。 您應該使用{}
其次,您不需要將rows
設置為您所在州的屬性。 您應該使用相同的名稱,即childState
而不是行
updateTitle = (e) => {
const childState = {...this.state.childState};
childState.title = e.target.value
this.setState({
childState,
});
}
你可以這樣使用:
updateTitle = (e) => {
this.setState(prevState => ({
...prevState,
childState: {
title: e.target.value,
},
}));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.