Во-первых, какую версию вы используете?Material-UI - это очень быстрый проект, поэтому вам нужно убедиться, что вы проверяете документацию на любую версию, в которой вы находитесь.
Я предпочитаю использовать явные события (ref
в этомдело), и это работает для меня в 3.1.0
<input
ref={'file-upload'}
type='file'
/>
<ButtonBase
onClick={e => {
this.refs['file-upload'].click()
}}
>
<div style={{
color: 'red',
backgroundColor: 'yellow',
border: '1px solid green',
}}
>
Upload!
</div>
</ButtonBase>
<hr />
<Button
type='file'
onClick={e => {
this.refs['file-upload'].click()
}}
>
File Upload Material
</Button>
Я использую нечто подобное в одном из своих проектов и просто скрываю элемент <input type='file' />
.