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: '',
};
// constructor (){
// super();
// debugger;
// if (!this.props || !this.props.value){
// this.setState({
// eventDataList:[]
// })
// }
// }
static getDerivedStateFromProps(nextProps, prevState) {
const { value } = nextProps;
if (value !== prevState.eventDataList) {
return {
value,
};
}
// const { value } = nextProps;
// debugger;
// if (value !== prevState.eventDataList) {
// return {
// value,
// };
// }
return null;
}

View File

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

View File

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