Я пытаюсь передать загруженный файл дочернему компоненту, чтобы родительский и дочерний компоненты были основаны на функции. Я использую React, TypeScript и Material-UIРодители
import React from 'react';
import Child from './Child';
const Parent:React.FC =() => {
const [file, setFile] = React.useState(null);
const onChangeFile = (e:any) => {
setFile(e!.target.files[0]);
}
return(
<div>
<input
accept="*.*"
onChange={onChangeFile}
id="uploadFile"
type="file" />
<Button
onClick={() => document.getElementById('uploadFile')!.click()}
component='span'>
Upload file
</Button>
<Child files={file: File}>
</div>
Ребенок
import React from 'react';
const Child:React.FC = (props) => {
return(
<div>
{{ props }}
</div>
)
}
export default Child
На данный момент я просто хочу распечатать информацию о файле, которая у меня есть {{ props }}
. Я новичок в React и, пожалуйста, скажите мне, что я сделал не так. Заранее спасибо! EDIT Я изменил ребенка,
const Child:React.FC = ({files}) => {
return(
<div>
{ files }
</div>
)
}
, тогда он выдает ошибку,
property 'files' does not exist on type '{children?:ReactNode; }'
EDIT2 Следуя @EarlePoole, я изменил свой код. Parents
const Parent:React.FC = () => {
//...
<Child file={file} />
Child
const Child:React.FC =(props) => {
return(
<div>
{props.file.file}
</div>
)
}
В родительском компоненте я получил эту ошибку
Type '{ file: any; } is not assignable to type 'IntrinsicAttributes & {children ?:ReactNode; }'. Property 'file' does not exist on type 'IntrinsicAttributes & { children?: ReactNode}'
В дочернем компоненте
Property 'file' does not exist on type '{children?:ReactNode; }'