【发布时间】:2020-02-19 11:51:49
【问题描述】:
这是我正在处理的一个 React 类:
import React from 'react';
export default class ExpenseForm extends React.Component {
state = {
title: ''
};
onTitleChange = (e) => {
const title = e.target.value;
this.setState(() => ({title}));
};
render() {
return (
<div>
<form>
<input
type='text'
placeholder='title'
value={this.state.title}
onChange={(e) => this.setState(() => ({title: e.target.value}))}
required autoFocus/>
<textarea placeholder='Add a note for your expense'/>
<input type='number' placeholder='amount' required/>
<input type='submit' value='Add Expense'/>
</form>
</div>
);
}
}
这会在执行onChange 时引发错误Uncaught TypeError: Cannot read property 'value' of null。
但是当我将 onChange 的内部 js 重组为一个单独的函数 onTitleChange 并调用该函数:onChange={this.onTitleChange} 时,它可以完美运行。这种行为背后的原因可能是什么?
【问题讨论】: