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);
}
if (!visible) {
return null;
}
const { setter } = field;
let setterProps: any = {};
@ -107,27 +104,6 @@ class SettingFieldView extends Component<SettingFieldViewProps, SettingFieldView
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;
if (defaultValue != null && !('defaultValue' in setterProps)) {
setterProps.defaultValue = defaultValue;
@ -152,6 +128,31 @@ class SettingFieldView extends Component<SettingFieldViewProps, SettingFieldView
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 stageName = this.stageName;

View File

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