update event binding

This commit is contained in:
zude.hzd 2020-07-19 21:44:41 +08:00
parent bca9e2e0a8
commit c4f9505b1b
3 changed files with 33 additions and 11 deletions

View File

@ -33,15 +33,24 @@ export default class EventsSetter extends Component<{
relatedEventName: '', relatedEventName: '',
}; };
// constructor (){
// super();
// debugger;
// if (!this.props || !this.props.value){
// this.setState({
// eventDataList:[]
// })
// }
// }
static getDerivedStateFromProps(nextProps, prevState) { static getDerivedStateFromProps(nextProps, prevState) {
const { value } = nextProps; // const { value } = nextProps;
if (value !== prevState.eventDataList) { // debugger;
return { // if (value !== prevState.eventDataList) {
value, // return {
}; // value,
} // };
// }
return null; return null;
} }

View File

@ -179,7 +179,7 @@ export default function(metadata: TransformedComponentMetadata): TransformedComp
title: { type: 'i18n', 'zh-CN': '事件', 'en-US': 'Events' }, title: { type: 'i18n', 'zh-CN': '事件', 'en-US': 'Events' },
items: [ items: [
{ {
name: '!events', name: 'events',
title: { type: 'i18n', 'zh-CN': '事件设置', 'en-US': 'Events' }, title: { type: 'i18n', 'zh-CN': '事件设置', 'en-US': 'Events' },
setter: { setter: {
componentName: 'EventsSetter', componentName: 'EventsSetter',
@ -188,12 +188,25 @@ export default function(metadata: TransformedComponentMetadata): TransformedComp
}, },
}, },
getValue(field: SettingTarget, val?: any[]) { getValue(field: SettingTarget, val?: any[]) {
// todo: let eventDataList = []
return val; for (let key in val){
if (val[key].__eventData){
eventDataList.push(val[key].__eventData)
}
}
return eventDataList;
}, },
setValue(field: SettingTarget, eventDataList: any[]) { setValue(field: SettingTarget, eventDataList: any[]) {
// todo: // todo:
eventDataList.map((item)=>{
field.setPropValue(item.name,{
type: 'JSFunction',
value: `function(){ this.${item.relatedEventName}() }`,
__eventData:item
})
return item;
})
return; return;
}, },
}, },

View File

@ -258,7 +258,7 @@ export default class SourceEditor extends Component<{
<MonacoEditor <MonacoEditor
value={jsCode} value={jsCode}
{...defaultEditorOption} {...defaultEditorOption}
{...{ language: 'typescript' }} {...{ language: 'javascript' }}
onChange={(newCode) => this.updateCode(newCode)} onChange={(newCode) => this.updateCode(newCode)}
editorDidMount={(editor, monaco) => this.editorDidMount.call(this, editor, monaco,TAB_KEY.JS_TAB)} editorDidMount={(editor, monaco) => this.editorDidMount.call(this, editor, monaco,TAB_KEY.JS_TAB)}
/> />