如何在React JS中的图像加载事件的回调中使用函数?

索达瓦迪亚

如果我setStateimage.onload回调中使用了其他函数或其他函数,则出现类似的错误this is not function如果我使用局部变量来处理错误,则会在之前更新局部变量的值之前检查条件image.onload

handleProductImage = (e) => {
    let file = e.target.files[0];
    let reader = new FileReader();
    let  height, width, isError = false;
    reader.readAsDataURL(file);
    reader.onload = function (file) {
      let img = new Image();
      img.src = file.target.result;
      img.onload = function () {
        height = this.height;
        width = this.width;
        if (height && width) {
          if (height < 250 || width < 250) {
             //--Use local variable---//
             //isError = true;
            //---Use setState for handle error---//
            // this.setState({ isError: true });
            //---Call function directly---//
            this.props.setErrorMessage();
          }
          else {
            //--Use local variable---//
            //isError = false;
            //---Use setState for handle error---//
            // this.setState({ isError: false });
            //---Call function directly---//
             this.handleImageCropper(e)
          }
        }
      }
    }
    //Use local variable for function call 
    //if (isError) {
      //console.log("error");
      //this.props.setErrorMessage();
    //}
    //else {
      //this.handleImageCropper(e)
    //}
  }
HMR

您使用this并有时假定它是图像,但后来假定它是组件。请尝试以下操作:

handleProductImage = (e) => {
  const me = this;
  let file = e.target.files[0];
  let reader = new FileReader();
  let height,
    width,
    isError = false;
  reader.readAsDataURL(file);
  reader.onload = function (file) {
    let img = new Image();
    img.src = file.target.result;
    img.onload = function () {
      height = this.height;//leave "this" if you mean img.height
      width = this.width;
      if (height && width) {
        if (height < 250 || width < 250) {
          me.props.setErrorMessage();
        } else {
          me.handleImageCropper(e);
        }
      }
    };
  };
};

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在JS中回调函数

来自分类Dev

如何在事件回调中使用实时函数和去抖?

来自分类Dev

如何在react-native中使用RCTEventEmitter接收事件回调

来自分类Dev

如何在react-native中使用RCTEventEmitter接收事件回调

来自分类Dev

如何在回调函数中从文件加载GdkPixbuf?

来自分类Dev

如何在react.js的回调中调用UseState钩子的状态更新器函数

来自分类Dev

如何在GWT UiBinder中使用JavaScript回调函数?

来自分类Dev

如何在回调函数javascript中使用断言

来自分类Dev

如何在此函数中使用此回调消息

来自分类Dev

如何在imagesLoaded回调函数中使用变量?

来自分类Dev

如何在Python中使用ctypes创建回调函数?

来自分类Dev

如何在GWT UiBinder中使用JavaScript回调函数?

来自分类Dev

如何在此函数中使用此回调消息

来自分类Dev

如何在API中使用jsonp回调函数

来自分类Dev

如何在回调函数Node JS中打破for循环

来自分类Dev

如何在回调函数Node JS中打破for循环

来自分类Dev

如何在node.js中执行回调函数?

来自分类Dev

如何在React中使用图像构造函数?

来自分类Dev

Kefir.js-如何从回调函数流式传输事件?

来自分类Dev

如何在React中使用导入的图像

来自分类Dev

如何在回调中使用“this”?

来自分类Dev

如何访问JavaScript事件的回调函数中的变量?

来自分类Dev

我如何在React JS函数中使用jQuery $(this)

来自分类Dev

如何在React中使用Stripe JS触发函数?

来自分类Dev

React-Router V2:如何在回调中使用``替换''功能

来自分类Dev

如何在react native中回调函数结果确定的初始路由?

来自分类Dev

如何知道在 Cordova 中使用的回调函数是否相同?

来自分类Dev

如何在异步函数 discord.js 中的 message.react() 中使用循环

来自分类Dev

如何在回调中使用结构的参数化成员函数?

Related 相关文章

  1. 1

    如何在JS中回调函数

  2. 2

    如何在事件回调中使用实时函数和去抖?

  3. 3

    如何在react-native中使用RCTEventEmitter接收事件回调

  4. 4

    如何在react-native中使用RCTEventEmitter接收事件回调

  5. 5

    如何在回调函数中从文件加载GdkPixbuf?

  6. 6

    如何在react.js的回调中调用UseState钩子的状态更新器函数

  7. 7

    如何在GWT UiBinder中使用JavaScript回调函数?

  8. 8

    如何在回调函数javascript中使用断言

  9. 9

    如何在此函数中使用此回调消息

  10. 10

    如何在imagesLoaded回调函数中使用变量?

  11. 11

    如何在Python中使用ctypes创建回调函数?

  12. 12

    如何在GWT UiBinder中使用JavaScript回调函数?

  13. 13

    如何在此函数中使用此回调消息

  14. 14

    如何在API中使用jsonp回调函数

  15. 15

    如何在回调函数Node JS中打破for循环

  16. 16

    如何在回调函数Node JS中打破for循环

  17. 17

    如何在node.js中执行回调函数?

  18. 18

    如何在React中使用图像构造函数?

  19. 19

    Kefir.js-如何从回调函数流式传输事件?

  20. 20

    如何在React中使用导入的图像

  21. 21

    如何在回调中使用“this”?

  22. 22

    如何访问JavaScript事件的回调函数中的变量?

  23. 23

    我如何在React JS函数中使用jQuery $(this)

  24. 24

    如何在React中使用Stripe JS触发函数?

  25. 25

    React-Router V2:如何在回调中使用``替换''功能

  26. 26

    如何在react native中回调函数结果确定的初始路由?

  27. 27

    如何知道在 Cordova 中使用的回调函数是否相同?

  28. 28

    如何在异步函数 discord.js 中的 message.react() 中使用循环

  29. 29

    如何在回调中使用结构的参数化成员函数?

热门标签

归档