等待功能组件中的功能

用户名

我有一个渲染图像的功能组件,我File还是一个孩子时就需要一个道具,需要将其转换为dataUri用于图像源的,但是我不确定如何await在非异步函数中使用。

 const toBase64 = file =>
  new Promise((resolve, reject) => {
    const reader = new FileReader()
    reader.readAsDataURL(file)
    reader.onload = () => resolve(reader.result)
    reader.onerror = error => reject(error)
  })

export default function Print({item}) {
  const classes = useStyles({})

  const dataUri = await toBase64(item.photo) //can't use wait here

  return (
    <div className={classes.root}>
      <div className={classes.imgContainer}>
        {dataUri && <img className={classes.img} src={dataUri.toString()} />}
      </div>
    </div>
  )
}

任何帮助,将不胜感激。

丹尼斯瓦什

您应该尝试将逻辑移至useEffect回调:

const toBase64 = file =>
  new Promise((resolve, reject) => {
    const reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = () => resolve(reader.result);
    reader.onerror = error => reject(error);
  });

export default function Print({ item }) {
  const [dataUri, setDataUri] = useState();
  const classes = useStyles({});

  useEffect(async () => {
    const dataUriFetched = await toBase64(item.photo);
    setDataUri(dataUriFetched);
  }, [item]);

  return (
    <div className={classes.root}>
      <div className={classes.imgContainer}>
        {dataUri && <img className={classes.img} src={dataUri.toString()} />}
      </div>
    </div>
  );
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

异步/等待反应功能组件

来自分类Dev

在其他功能中反应组件异步等待

来自分类Dev

功能组件中的道具

来自分类Dev

触发子组件中的功能

来自分类Dev

功能组件中的界面道具

来自分类Dev

Node.js中的功能编程-等待功能完成

来自分类Dev

UNIX(或LINUX)中的退出和等待功能

来自分类Dev

Dart 1.8中的异步/等待功能

来自分类Dev

在Python RQ中执行等待/异步功能

来自分类Dev

观察者功能中的异步等待

来自分类Dev

在C中获取功能而不等待输入

来自分类Dev

UNIX(或LINUX)中的退出和等待功能

来自分类Dev

handleSubmit功能在React的功能组件中不起作用

来自分类Dev

异步/等待功能未等待

来自分类Dev

无法访问订阅功能中的组件

来自分类Dev

读取功能(无状态)组件中的<input>

来自分类Dev

在React功能组件中访问Ref

来自分类Dev

测试功能如何从外部导入组件中?

来自分类Dev

不能在功能组件中设置状态

来自分类Dev

使用功能渲染JSX中的组件

来自分类Dev

强制停止执行cfc组件中的功能

来自分类Dev

在React中管理组件功能的正确方法

来自分类Dev

向功能组件中的列表添加值

来自分类Dev

ReactJS中的功能组件和useState()

来自分类Dev

ReactJS中的功能组件和return语句

来自分类Dev

从功能组件中传递的道具进行映射

来自分类Dev

React Checkbox未在功能组件中更新

来自分类Dev

从React中的功能组件传递值

来自分类Dev

将获取功能放在单独的组件中