[英]How can I get started with functional programming using react?
我有一個受控組件,該組件使用函數式編程來更新輸入,我想知道是否需要這樣做:
class ScreensEditSeries extends Component{
constructor(props){
super(props)
this.state = {
id: '',
name: '',
status: '',
genre: '',
notes: ''
}
}
...
handleChange = field => event => {
this.setState({
...this.state, //is necessary do this for return a new full state?
[field] : event.target.value
})
}
...
render(){
return(
...
Name: <input type="text" value={this.state.name} onChange={this.handleChange('name')} className="form-control" /><br />
Status: {<span> </span>}
<select value={this.state.status} onChange={this.handleChange('status')}>
{Object.keys(statsuser)
.map( key => <option key={key}>{statsuser[key]}</option>)}
</select><br/><br/>
Genre: {<span> </span>}
<select value={this.state.genre} onChange={this.handleChange('genre')}>
{Object.keys(statsgenre)
.map(key => <option key={key}>{statsgenre[key]}</option>)}
</select><br/><br/>
Notes: <textarea type='text' value={this.state.notes} onChange={this.handleChange('notes')} className="form-control"></textarea><br />
...
)}
我正在學習函數式編程,我認為有必要在更新之前擴展狀態以生成新狀態,而不僅僅是更新它。 但這需要更多的內存和cpu進程。 建議這樣做嗎?
不,這不是必須的, setState
只會修改您提供的JSON中給定的變量。 在您的情況下,僅field
值的屬性將被修改。
除非您要修改嵌套的屬性,否則不需要解構狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.