为了纠正错误,
TypeError: Cannot read property 'files' of null.
您需要更改state
声明state = {
files: []
}如果您希望有机会选择多个文件,可以使用
multiple
选项
或者,如果您想要一张一张地选择图片,则您的实现应该可以正常工作,只需修正
state声明并用于
e.target.files获取选定的文件
class ImageUpload extends React.Component { state = { files: [] } fileSelectedHandler = (e) => { this.setState({ files: [...this.state.files, ...e.target.files] }) } render() { return ( <form> <div><h2>Upload images</h2></div> <h3>Images</h3> <input type="file" multiple onChange={this.fileSelectedHandler} /> </form> ) } } ReactDOM.render(<ImageUpload />, document.getElementById('app')) <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <div id="app"></div>


