fix: defaultValue should be evaluated inspite of condition result is falsy, fixes #1045

This commit is contained in:
LeoYuan 袁力皓 2022-10-09 10:38:32 +08:00 committed by 刘菊萍(絮黎)
parent 4b8ec09e86
commit fcfce3cbeb
2 changed files with 27 additions and 24 deletions

View File

@ -78,9 +78,6 @@ class SettingFieldView extends Component<SettingFieldViewProps, SettingFieldView
console.error('exception when condition (hidden) is excuted', error); console.error('exception when condition (hidden) is excuted', error);
} }
if (!visible) {
return null;
}
const { setter } = field; const { setter } = field;
let setterProps: any = {}; let setterProps: any = {};
@ -107,27 +104,6 @@ class SettingFieldView extends Component<SettingFieldViewProps, SettingFieldView
setterType = setter; setterType = setter;
} }
// 根据是否支持变量配置做相应的更改
const supportVariable = field.extraProps?.supportVariable;
// supportVariableGlobally 只对标准组件生效vc 需要单独配置
const supportVariableGlobally = engineConfig.get('supportVariableGlobally', false) && isStandardComponent(componentMeta);
if (supportVariable || supportVariableGlobally) {
if (setterType === 'MixedSetter') {
// VariableSetter 不单独使用
if (Array.isArray(setterProps.setters) && !setterProps.setters.includes('VariableSetter')) {
setterProps.setters.push('VariableSetter');
}
} else {
setterType = 'MixedSetter';
setterProps = {
setters: [
setter,
'VariableSetter',
],
};
}
}
let value = null; let value = null;
if (defaultValue != null && !('defaultValue' in setterProps)) { if (defaultValue != null && !('defaultValue' in setterProps)) {
setterProps.defaultValue = defaultValue; setterProps.defaultValue = defaultValue;
@ -152,6 +128,31 @@ class SettingFieldView extends Component<SettingFieldViewProps, SettingFieldView
value = _initialValue; value = _initialValue;
} }
if (!visible) {
return null;
}
// 根据是否支持变量配置做相应的更改
const supportVariable = field.extraProps?.supportVariable;
// supportVariableGlobally 只对标准组件生效vc 需要单独配置
const supportVariableGlobally = engineConfig.get('supportVariableGlobally', false) && isStandardComponent(componentMeta);
if (supportVariable || supportVariableGlobally) {
if (setterType === 'MixedSetter') {
// VariableSetter 不单独使用
if (Array.isArray(setterProps.setters) && !setterProps.setters.includes('VariableSetter')) {
setterProps.setters.push('VariableSetter');
}
} else {
setterType = 'MixedSetter';
setterProps = {
setters: [
setter,
'VariableSetter',
],
};
}
}
let _onChange = extraProps?.onChange; let _onChange = extraProps?.onChange;
let stageName = this.stageName; let stageName = this.stageName;

View File

@ -6,6 +6,8 @@ export {
intl, intl,
createSetterContent, createSetterContent,
obx, obx,
observable,
makeObservable,
untracked, untracked,
computed, computed,
observer, observer,