javascript - 未捕获(承诺中)类型错误:无法读取未定义的属性“模式”
问题描述
我对 React / Gutenberg 很陌生,因此我为任何初学者的错误道歉。
我创建了我自己的 Gutenberg Block,我在两个状态之间切换(正在工作),但是一旦我添加this.state.mode
到我的save: function(props){}
我得到这个错误:
Uncaught (in promise) TypeError: Cannot read property 'mode' of undefined
我搜索了我能找到的关于这个错误的所有内容,但 99% 的答案与函数的“绑定”和我所做的。有谁知道这里有什么问题?谢谢!
const el = wp.element.createElement;
const {
registerBlockType
} = wp.blocks;
const {
__
} = wp.i18n;
const {
RichText,
InspectorControls
} = wp.editor;
const {
Fragment,
withAPIDate,
Component
} = wp.element;
const {
TextControl,
CheckboxControl,
RadioControl,
SelectControl,
TextareaControl,
ToggleControl,
RangeControl,
Panel,
PanelBody,
PanelRow
} = wp.components;
const {
withState
} = wp.compose;
class MyToggleControl extends Component {
constructor(props, context) {
super(props, context);
this.toggleon = this.toggleon.bind(this);
this.toggleoff = this.toggleoff.bind(this);
this.state = {
label: 'No-Togglemode',
arrow: false,
mode: "no-toggle",
onChange: this.toggleon,
};
}
toggleon() {
this.setState({
label: 'Togglemode',
arrow: !this.state.arrow,
mode: "toggle",
});
}
toggleoff() {
this.setState({
label: 'No-Togglemode',
arrow: !this.state.arrow,
mode: "no-toggle",
});
}
render() {
if (this.state.mode === 'no-toggle') {
return el(PanelRow, {},
el(ToggleControl, {
label: this.state.label,
mode: "no-toggle",
onChange: this.toggleon,
}));
}
if (this.state.mode === 'toggle') {
return el(PanelRow, {},
el(ToggleControl, {
label: this.state.label,
mode: "toggle",
onChange: this.toggleoff,
}));
}
}
}
registerBlockType("timogede/icon-list", {
title: __("Icon List"),
icon: "lock",
category: "common",
attributes: {
mode: {
type: 'string',
}
},
edit: function(props) {
return el(Fragment, {},
/*
* INSPECTOR CONTROL AREA
*/
el(InspectorControls, {},
el(PanelBody, {
title: 'Form Settings',
initialOpen: true
},
/* Toggle Field */
el(MyToggleControl, {}, ),
),
),
/*
* CONTENT AREA
*/
);
},
save: function(props) {
return el('div', {
className: this.state.mode,
},
);
}
});
解决方案
推荐阅读
- r - R 版本 4 的个人包中的 UseMethod 错误
- python - 瓶子和多个请求
- python - 打包python资源(Manifest.in vs package_data vs data_files)
- flutter - 在小部件加载颤动时触发动画
- excel - VBA数字格式化Excel中的公式
- ansible - Ansible - 并行运行两个任务
- css - 无法将材料 ui 数据表列(表头)编辑到文本中心对齐(React)
- java - Java.lang.NoSuchFieldError:类“Ljava/lang/Integer”中没有“I”字段“值”;或其超类 Android 10
- c# - WPF:KO 无法同步 StoryBoards 动画 + 无法更改应用程序主题
- c# - 使所有方法的 Moq 输出调用到控制台