Typescript 声明钩子中数组的数据类型,continue已初始化

Typescript 声明钩子中数组的数据类型,continue已初始化,typescript,react-native,react-hooks,Typescript,React Native,React Hooks,我尝试了通过RNFS.readDir获取setState文件数据 但当我设置数据时,状态被初始化 interface fileUnit { type: string, index: number, title: string, path: string, date: string, size: number, thumbnail: string } ... export const Documents = () => { const hookState =

我尝试了通过RNFS.readDir获取setState文件数据

但当我设置数据时,状态被初始化

interface fileUnit {
  type: string,
  index: number,
  title: string,
  path: string,
  date: string,
  size: number,
  thumbnail: string
} 
...
export const Documents = () => {
  const hookState = React.useState([])
  const documents: fileUnit[] = hookState[0]
  const setDocuments: any =hookState[1]

  React.useEffect(() => {
    RNFS.readDir(RNFS.DocumentDirectoryPath)
      .then(async (results: any[]) => {
        results.map((file, key) => {
          const fileUnit: fileUnit= { type: file.isFile()? 'file': 'folder', index: key, title: file.name, path: file.path, date: file.mtime, size: file.size, thumbnail: ''}

          setDocuments([...documents, fileUnit])

        })
      })
  }, [])
}

我希望附加到数据状态数组。 但它是初始化的

interface fileUnit {
  type: string,
  index: number,
  title: string,
  path: string,
  date: string,
  size: number,
  thumbnail: string
} 
...
export const Documents = () => {
  const hookState = React.useState([])
  const documents: fileUnit[] = hookState[0]
  const setDocuments: any =hookState[1]

  React.useEffect(() => {
    RNFS.readDir(RNFS.DocumentDirectoryPath)
      .then(async (results: any[]) => {
        results.map((file, key) => {
          const fileUnit: fileUnit= { type: file.isFile()? 'file': 'folder', index: key, title: file.name, path: file.path, date: file.mtime, size: file.size, thumbnail: ''}

          setDocuments([...documents, fileUnit])

        })
      })
  }, [])
}

那么,我可以为stateData设置类型吗

const [documents, setDocuments] = React.useState([]);

你为什么不试试这个

export const Documents = () => {
  const hookState = React.useState([])
  const documents: fileUnit[] = hookState[0]
  const setDocuments: any =hookState[1]

  React.useEffect(aaync () => {
    const results: any[] = await RNFS.readDir(RNFS.DocumentDirectoryPath)
    const resfileUnit: fileUnit = results.map((file, key) => {
        return { type: file.isFile()? 'file': 'folder', index: key, title: file.name, path: file.path, date: file.mtime, size: file.size, thumbnail: ''}
    })
    setDocuments([...documents, resfileUnit])
  }, [])
}
您可以按照要求定义
setState
的变量。这是常用的使用方法