shineout 3.6.7-beta.6 → 3.6.7-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cjs/index.js CHANGED
@@ -514,5 +514,5 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
514
514
  // 此文件由脚本自动生成,请勿直接修改。
515
515
  // This file was generated automatically by a script. Please do not modify it directly.
516
516
  var _default = exports.default = {
517
- version: '3.6.7-beta.6'
517
+ version: '3.6.7-beta.7'
518
518
  };
package/dist/shineout.js CHANGED
@@ -12217,7 +12217,7 @@ var handleStyle = function handleStyle(style) {
12217
12217
  };
12218
12218
  /* harmony default export */ var jss_style_handleStyle = (handleStyle);
12219
12219
  ;// CONCATENATED MODULE: ../shineout-style/src/version.ts
12220
- /* harmony default export */ var version = ('3.6.7-beta.6');
12220
+ /* harmony default export */ var version = ('3.6.7-beta.7');
12221
12221
  ;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
12222
12222
 
12223
12223
 
@@ -49572,7 +49572,8 @@ var useForm = function useForm(props) {
49572
49572
  resetTime: 0,
49573
49573
  mounted: false,
49574
49574
  unmounted: false,
49575
- removeLock: false
49575
+ removeLock: false,
49576
+ settingMap: {}
49576
49577
  }),
49577
49578
  context = _React$useRef.current;
49578
49579
  var update = function update(name) {
@@ -49809,6 +49810,8 @@ var useForm = function useForm(props) {
49809
49810
  // upload组件返回的可能是函数: (prev) => [...prev, file]
49810
49811
  var valueOfKey = typeof vals[key] === 'function' ? vals[key](getValue(key)) : vals[key];
49811
49812
  deepSet(draft, key, valueOfKey, deepSetOptions);
49813
+ // 设置 settingMap 用于标记该字段正在被设置值
49814
+ context.settingMap[key] = true;
49812
49815
  });
49813
49816
  values.forEach(function (key) {
49814
49817
  if (option.validate) {
@@ -49819,6 +49822,13 @@ var useForm = function useForm(props) {
49819
49822
  });
49820
49823
  }
49821
49824
  });
49825
+
49826
+ // 设置 settingMap 的值为 false,表示该字段设置值完成
49827
+ setTimeout(function () {
49828
+ values.forEach(function (key) {
49829
+ delete context.settingMap[key];
49830
+ });
49831
+ });
49822
49832
  });
49823
49833
 
49824
49834
  // 获取vals的所有key,包括嵌套对象的key
@@ -49999,11 +50009,18 @@ var useForm = function useForm(props) {
49999
50009
  context.updateMap[n].add(updateFn);
50000
50010
  var shouldTriggerResetChange = context.removeArr.has(n);
50001
50011
  context.removeArr.delete(n);
50002
- var shouldTriggerDefaultChange = df !== undefined && deepGet(context.value, n) === undefined;
50012
+ var currentValue = deepGet(context.value, n);
50013
+ var shouldTriggerDefaultChange = df !== undefined && currentValue === undefined;
50003
50014
  if (shouldTriggerDefaultChange || shouldTriggerResetChange) {
50004
50015
  if (!context.mounted) context.defaultValues[n] = df;
50016
+ var _defaultValue = df;
50017
+
50018
+ // 如果组件是重新 bind ,比如更改了 key 或者通过三元表达式切换了组件但 name 都是相同的情况下,在切换过程中改了 value 的值(比如通过 datum.set),需要阻止 defaultValue 的上位,按照当前的 value 来设置 defaultValue
50019
+ if (shouldTriggerResetChange && context.settingMap[n]) {
50020
+ _defaultValue = currentValue !== undefined ? currentValue : df;
50021
+ }
50005
50022
  onChange(function (v) {
50006
- deepSet(v, n, df, deepSetOptions);
50023
+ deepSet(v, n, _defaultValue, deepSetOptions);
50007
50024
  });
50008
50025
  update(n);
50009
50026
  }
@@ -70160,7 +70177,7 @@ var upload_interface = __webpack_require__(8821);
70160
70177
 
70161
70178
 
70162
70179
  /* harmony default export */ var src_0 = ({
70163
- version: '3.6.7-beta.6'
70180
+ version: '3.6.7-beta.7'
70164
70181
  });
70165
70182
  }();
70166
70183
  /******/ return __webpack_exports__;