GVKun编程网logo

Error in event handler for "el.form.change": "TypeError: value.getTime is not a fu...

10

针对Errorineventhandlerfor"el.form.change":"TypeError:value.getTimeisnotafu...这个问题,本篇文章进行了详细的解答,同时本文还将

针对Error in event handler for "el.form.change": "TypeError: value.getTime is not a fu...这个问题,本篇文章进行了详细的解答,同时本文还将给你拓展(node:11224) UnhandledPromiseRejectionWarning: TypeError: this.getResolve is not a function、(React) useDispatch TypeError: Object(...) is not a function handleChange、ajaxfileupload.js 报Uncaught TypeError: jQuery.handleError is not a function错误、ajaxfileupload.js结合低版本jquery报异常:TypeError: jQuery.handleError is not a function等相关知识,希望可以帮助到你。

本文目录一览:

Error in event handler for

Error in event handler for "el.form.change": "TypeError: value.getTime is not a fu...

<el-form-item prop="startWork" class="fl" style="padding-top:0;">
                  <el-time-picker
                    v-model="item.startWork" :disabled="!item.edit"
                    :picker-options="{ selectableRange: ''0:0:00 - 23:59:59'' }"
                    placeholder="选择时间" value-format="HH:mm:ss">
                  </el-time-picker>
                </el-form-item>
                <i class="el-icon-minus fl"></i>
                <el-form-item prop="endWork" class="fl" style="padding-top:0;">
                  <el-time-picker
                    v-model="item.endWork" :disabled="!item.edit"
                    :picker-options="{ selectableRange: ''0:0:00 - 23:59:59'' }"
                    placeholder="选择时间" value-format="HH:mm:ss"  >
                  </el-time-picker>
    </el-form-item>

  

在网上找了一下,因为我 elementUI 的日期选择器【el-date-picker】在加上格式 value-format="HH:mm:ss" 和校验规则

s startWork: [
            { type: ''date'', required: true, message: ''请选择时间'', trigger: ''change'' }
          ],
          endWork: [
            { type: ''date'', required: true, message: ''请选择时间'', trigger: ''change'' }
          ],

  解决方法

startWork: [
            { type: ''string'', required: true, message: ''请选择时间'', trigger: ''change'' }
          ],
          endWork: [
            { type: ''string'', required: true, message: ''请选择时间'', trigger: ''change'' }
          ],

  

(node:11224) UnhandledPromiseRejectionWarning: TypeError: this.getResolve is not a function

(node:11224) UnhandledPromiseRejectionWarning: TypeError: this.getResolve is not a function

来自/感谢:https://blog.csdn.net/qq_43379916/article/details/109190506

版本过高错误

比如我的webpack是3.6.0版本
而我的css-loader是5.0.0
这里就会出现这个错误
解决办法:
1,手动设置,然后采用npm install 重新下载
2,卸载重装

npm uninstall css-loader //卸载
npm install css-loader@3.0.0 --save-dev   //指定版本重装

 

(React) useDispatch TypeError: Object(...) is not a function handleChange

(React) useDispatch TypeError: Object(...) is not a function handleChange

如何解决(React) useDispatch TypeError: Object(...) is not a function handleChange?

我正在做一个简单的 React 应用程序,其中任何用户在输入文本中引入一个文本,它会自动更新商店中的状态。 这是 React 的非常简单的实践,但我对这个错误感到非常挣扎和沮丧,因为我尝试了所有方法,但仍然遇到同样的问题。

我正在使用“react-redux”和“@reduxjs/toolkit”依赖项。我尝试了所有方法,检查并比较了类似问题的类似示例和解决方案,我从头开始重新制作了该应用程序,以确保不同版本的依赖项没有任何问题,并且我尝试使我的代码非常简单它有效,但无效。

我希望你们中的任何人都可以给我建议或解决方案。 谢谢!!

错误

TypeError: Object(...) is not a function
handleChange
C:/Users/Ruben/Desktop/Projects/React/reddit2/reddit/src/features/search/SearchBar.js:14
  11 | 
  12 | 
  13 |  const handleChange = (e) => {
> 14 |    dispatch(setSearchTerm(e.target.value))
     | ^  15 |  }
  16 | 
  17 | 
View compiled
▶ 19 stack frames were collapsed.
This screen is visible only in development. It will not appear if the app crashes in production.
Open your browser’s developer console to further inspect this error.  Click the ''X'' or hit ESC to dismiss this message.

这些是文件:

SearchBar 组件

import React from "react";
import {usedispatch,useSelector} from "react-redux";
import {setSearchTerm,selectSearchTerm} from "../search/searchSlice";


export const SearchBar = () => {
  
  
  const dispatch = usedispatch();
  const term = useSelector(selectSearchTerm);


  const handleChange = (e) => {
    dispatch(setSearchTerm(e.target.value))
  }


  return(
    <div>
      <input
        id="search"
        type="text"
        value={term}
        onChange={handleChange}
        placeholder="Introduce your Topic"
        />
    </div>
  );
};

searchSlice

import {createSlice} from "@reduxjs/toolkit";


export const searchSlice = createSlice({
  name: ''search'',initialState: '''',reducer: {
    setSearchTerm: (state,action) => {state.search = action.payload},}
});

export const {setSearchTerm} = searchSlice.actions;

export const selectSearchTerm = (state) => state.search;

export default searchSlice.reducer;

商店

import {configureStore} from "@reduxjs/toolkit";
import searchReducer from "../features/search/searchSlice";

export default configureStore({
  reducer: {
    search: searchReducer,},});

索引

import React from ''react'';
import ReactDOM from ''react-dom'';
import { Provider } from "react-redux";
import ''./index.css'';
import App from ''../src/App/App'';
import reportWebVitals from ''./reportWebVitals'';
import store from "../src/App/store";

ReactDOM.render(
  <React.StrictMode>
    <Provider store={store}>
      <App />
    </Provider>  
  </React.StrictMode>,document.getElementById(''root'')
);

Package.json

{
  "name": "reddit","version": "0.1.0","private": true,"dependencies": {
    "@reduxjs/toolkit": "^1.5.1","@testing-library/jest-dom": "^5.13.0","@testing-library/react": "^11.2.7","@testing-library/user-event": "^12.8.3","react": "^17.0.2","react-dom": "^17.0.2","react-redux": "^7.2.4","react-scripts": "4.0.3","web-vitals": "^1.1.2"
  },

解决方法

问题

  1. 您在 createSlice 中有一个拼写错误,正确的键是 reducers,带有“s”,而不是 reducer。这导致切片操作实际上未定义。
  2. 您的状态不太正确。它不是一个可起草的对象。

解决方案

更正reducer key并提供正确的状态。

export const searchSlice = createSlice({
  name: "search",initialState: { search: "" },// <-- object state
  reducers: {
    setSearchTerm: (state,action) => {
      state.search = action.payload; // <-- update property
    }
  }
});

export const { setSearchTerm } = searchSlice.actions;

export const selectSearchTerm = (state) => state.search.search; // <-- select property

export default searchSlice.reducer;

Edit react-usedispatch-typeerror-object-is-not-a-function-handlechange

ajaxfileupload.js 报Uncaught TypeError: jQuery.handleError is not a function错误

ajaxfileupload.js 报Uncaught TypeError: jQuery.handleError is not a function错误

因为“handleError”函数是在低版本的jquery 中的函数,所以解决方案是从低版本中的jquery 中找到这个函数

handleError: function( s,xhr,status,e )      {  
            // If a local callback was specified,fire it  
                    if ( s.error ) {  
                        s.error.call( s.context || s,e );  
                    }  
                    // Fire the global callback  
                    if ( s.global ) {  
                        (s.context ? jQuery(s.context) : jQuery.event).trigger( "ajaxError",[xhr,s,e] );  
                    }  
       }

把这个函数加入ajaxfileupload.js中去,就不报错了。

jQuery.extend({


    createUploadIframe: function(id,uri)
    {
        //create frame
        var frameId = 'jUploadFrame' + id;

        if(window.ActiveXObject) {
            var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
            if(typeof uri== 'boolean'){
                io.src = 'javascript:false';
            }
            else if(typeof uri== 'string'){
                io.src = uri;
            }
        }
        else {
            var io = document.createElement('iframe');
            io.id = frameId;
            io.name = frameId;
        }
        io.style.position = 'absolute';
        io.style.top = '-1000px';
        io.style.left = '-1000px';

        document.body.appendChild(io);

        return io
    },createUploadForm: function(id,fileElementId)
    {
        //create form
        var formId = 'jUploadForm' + id;
        var fileId = 'jUploadFile' + id;
        var form = $('<form  action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');
        var oldElement = $('#' + fileElementId);
        var newElement = $(oldElement).clone();
        $(oldElement).attr('id',fileId);
        $(oldElement).before(newElement);
        $(oldElement).appendTo(form);
        //set attributes
        $(form).css('position','absolute');
        $(form).css('top','-1200px');
        $(form).css('left','-1200px');
        $(form).appendTo('body');
        return form;
    },//就是这个函数。
    handleError: function( s,e] );  
                    }  
       },addOtherRequestsToForm: function(form,data)
    {
        // add extra parameter
        var originalElement = $('<input type="hidden" name="" value="">');
        for (var key in data) {
            name = key;
            value = data[key];
            var cloneElement = originalElement.clone();
            cloneElement.attr({'name':name,'value':value});
            $(cloneElement).appendTo(form);
        }
        return form;
    },ajaxFileUpload: function(s) {
        // Todo introduce global settings,allowing the client to modify them for all requests,not only timeout
        s = jQuery.extend({},jQuery.ajaxSettings,s);
        var id = new Date().getTime()
        var form = jQuery.createUploadForm(id,s.fileElementId);
        if ( s.data ) form = jQuery.addOtherRequestsToForm(form,s.data);
        var io = jQuery.createUploadIframe(id,s.secureuri);
        var frameId = 'jUploadFrame' + id;
        var formId = 'jUploadForm' + id;
        // Watch for a new set of requests
        if ( s.global && ! jQuery.active++ )
        {
            jQuery.event.trigger( "ajaxStart" );
        }
        var requestDone = false;
        // Create the request object
        var xml = {}
        if ( s.global )
            jQuery.event.trigger("ajaxSend",[xml,s]);
        // Wait for a response to come back
        var uploadCallback = function(isTimeout)
        {
            var io = document.getElementById(frameId);
            try
            {
                if(io.contentwindow)
                {
                    xml.responseText = io.contentwindow.document.body?io.contentwindow.document.body.innerHTML:null;
                    xml.responseXML = io.contentwindow.document.XMLDocument?io.contentwindow.document.XMLDocument:io.contentwindow.document;

                }else if(io.contentDocument)
                {
                    xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
                    xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
                }
            }catch(e)
            {
                jQuery.handleError(s,xml,null,e);
            }
            if ( xml || isTimeout == "timeout")
            {
                requestDone = true;
                var status;
                try {
                    status = isTimeout != "timeout" ? "success" : "error";
                    // Make sure that the request was successful or notmodified
                    if ( status != "error" )
                    {
                        // process the data (runs the xml through httpData regardless of callback)
                        var data = jQuery.uploadHttpData( xml,s.dataType );
                        // If a local callback was specified,fire it and pass it the data
                        if ( s.success )
                            s.success( data,status );

                        // Fire the global callback
                        if( s.global )
                            jQuery.event.trigger( "ajaxSuccess",s] );
                    } else
                        jQuery.handleError(s,status);
                } catch(e)
                {
                    status = "error";
                    jQuery.handleError(s,e);
                }

                // The request was completed
                if( s.global )
                    jQuery.event.trigger( "ajaxComplete",s] );

                // Handle the global AJAX counter
                if ( s.global && ! --jQuery.active )
                    jQuery.event.trigger( "ajaxStop" );

                // Process result
                if ( s.complete )
                    s.complete(xml,status);

                jQuery(io).unbind()

                setTimeout(function()
                {	try
                    {
                        $(io).remove();
                        $(form).remove();

                    } catch(e)
                    {
                        jQuery.handleError(s,e);
                    }

                },100)

                xml = null

            }
        }
        // Timeout checker
        if ( s.timeout > 0 )
        {
            setTimeout(function(){
                // Check to see if the request is still happening
                if( !requestDone ) uploadCallback( "timeout" );
            },s.timeout);
        }
        try
        {
            // var io = $('#' + frameId);
            var form = $('#' + formId);
            $(form).attr('action',s.url);
            $(form).attr('method','POST');
            $(form).attr('target',frameId);
            if(form.encoding)
            {
                form.encoding = 'multipart/form-data';
            }
            else
            {
                form.enctype = 'multipart/form-data';
            }
            $(form).submit();

        } catch(e)
        {
            jQuery.handleError(s,e);
        }
        if(window.attachEvent){
            document.getElementById(frameId).attachEvent('onload',uploadCallback);
        }
        else{
            document.getElementById(frameId).addEventListener('load',uploadCallback,false);
        }
        return {abort: function () {}};

    },uploadHttpData: function( r,type ) {
        var data = !type;
        data = type == "xml" || data ? r.responseXML : r.responseText;
        // If the type is "script",eval it in global context
        if ( type == "script" )
            jQuery.globalEval( data );
        // Get the JavaScript object,if JSON is used.
        if ( type == "json" )
        {
            // If you add mimetype in your response,// you have to delete the '<pre></pre>' tag.
            // The pre tag in Chrome has attribute,so have to use regex to remove
            var data = r.responseText;
            var rx = new RegExp("<pre.*?>(.*?)</pre>","i");
            var am = rx.exec(data);
            //this is the desired data extracted
            var data = (am) ? am[1] : "";    //the only submatch or empty
            eval( "data = " + data );
        }
        // evaluate scripts within html
        if ( type == "html" )
            jQuery("<div>").html(data).evalScripts();
        //alert($('param',data).each(function(){alert($(this).attr('value'));}));
        return data;
    }
})

ajaxfileupload.js结合低版本jquery报异常:TypeError: jQuery.handleError is not a function

ajaxfileupload.js结合低版本jquery报异常:TypeError: jQuery.handleError is not a function

今天刚打个一个技术群,里面有人问标题上的问题,嘿,我恰好遇过,现在大家至少也在用jquery1.9以上的版本,ajaxfileupload的版本早就不更新了,大家可以下载看:地址这里,它例子里使用的Jquery是1.2的,好老呀。。。这个问题,我以前开发过程中遇过,网上说经测试(我是没测试),是版本1.4.2之前的版本才有handlerError方法,之后就不存在了,(你存在,我深深的脑海里。。。),为了能够继续使用ajaxfileupload上传我们的附件,只好将代码拷进我们的项目中的ajaxfileupload.js文件中,如下:

Js代码
  1. handleError:function(s,xhr,status,e){
  2. //Ifalocalcallbackwasspecified,fireit
  3. if(s.error){
  4. s.error.call(s.context||s,e);
  5. }
  6. //Firetheglobalcallback
  7. if(s.global){
  8. (s.context?jQuery(s.context):jQuery.event).trigger("ajaxError",[xhr,s,e]);
  9. }

这样,就可以用了

今天关于Error in event handler for "el.form.change": "TypeError: value.getTime is not a fu...的分享就到这里,希望大家有所收获,若想了解更多关于(node:11224) UnhandledPromiseRejectionWarning: TypeError: this.getResolve is not a function、(React) useDispatch TypeError: Object(...) is not a function handleChange、ajaxfileupload.js 报Uncaught TypeError: jQuery.handleError is not a function错误、ajaxfileupload.js结合低版本jquery报异常:TypeError: jQuery.handleError is not a function等相关知识,可以在本站进行查询。

本文标签:

上一篇nvidia-docker 安装(nvidia docker 安装)

下一篇docker 部署和使用(一)(docker部署步骤)