针对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 "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 "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
来自/感谢: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 应用程序,其中任何用户在输入文本中引入一个文本,它会自动更新商店中的状态。 这是 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"
},
解决方法
问题
- 您在
createSlice
中有一个拼写错误,正确的键是reducers
,带有“s”,而不是reducer
。这导致切片操作实际上未定义。 - 您的状态不太正确。它不是一个可起草的对象。
解决方案
更正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;
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
今天刚打个一个技术群,里面有人问标题上的问题,嘿,我恰好遇过,现在大家至少也在用jquery1.9以上的版本,ajaxfileupload的版本早就不更新了,大家可以下载看:地址这里,它例子里使用的Jquery是1.2的,好老呀。。。这个问题,我以前开发过程中遇过,网上说经测试(我是没测试),是版本1.4.2之前的版本才有handlerError方法,之后就不存在了,(你存在,我深深的脑海里。。。),为了能够继续使用ajaxfileupload上传我们的附件,只好将代码拷进我们的项目中的ajaxfileupload.js文件中,如下:
- handleError:function(s,xhr,status,e){
- //Ifalocalcallbackwasspecified,fireit
- if(s.error){
- s.error.call(s.context||s,e);
- }
- //Firetheglobalcallback
- if(s.global){
- (s.context?jQuery(s.context):jQuery.event).trigger("ajaxError",[xhr,s,e]);
- }
这样,就可以用了
今天关于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等相关知识,可以在本站进行查询。
本文标签: