Skip to content

Commit

Permalink
Merge pull request baidu#9543 from 2betop/fix-withStore
Browse files Browse the repository at this point in the history
fix: 修改 withStore 更新逻辑修复 baidu#9435
  • Loading branch information
hsm-lv committed Jan 30, 2024
2 parents f2b67af + cce8811 commit 3f349d3
Show file tree
Hide file tree
Showing 12 changed files with 379 additions and 15 deletions.
9 changes: 3 additions & 6 deletions packages/amis-core/src/WithStore.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -181,11 +181,8 @@ export function HocStoreFactory(renderer: {
// 需要重新监听
this.unReaction?.();
this.unReaction = reaction(
() => JSON.stringify(getExprProperties(props, store.data)),
() =>
this.setState({
...getExprProperties(this.props, store.data)
})
() => getExprProperties(this.props, store.data),
(exprProps: any) => this.setState(exprProps)
);
}

Expand Down Expand Up @@ -270,7 +267,7 @@ export function HocStoreFactory(renderer: {
props.store?.storeType === 'ComboStore'
? undefined
: syncDataFromSuper(
props.data,
store.data,
(props.data as any).__super,
(prevProps.data as any).__super,
store,
Expand Down
5 changes: 4 additions & 1 deletion packages/amis-ui/src/components/NumberInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {ThemeProps, themeable, isNumeric, autobind, ucFirst} from 'amis-core';
export type ValueType = string | number;

export interface NumberProps extends ThemeProps {
name?: string;
placeholder?: string;
max?: ValueType;
min?: ValueType;
Expand Down Expand Up @@ -317,14 +318,16 @@ export class NumberInput extends React.Component<NumberProps, NumberState> {
inputRef,
keyboard,
inputControlClassName,
mobileUI
mobileUI,
name
} = this.props;
const precisionProps: any = {
precision: NumberInput.normalizePrecision(precision, step)
};

return (
<InputNumber
name={name}
className={cx(
className,
showSteps === false ? 'no-steps' : '',
Expand Down
2 changes: 2 additions & 0 deletions packages/amis/__tests__/renderers/CRUD.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
* 20. CRUD表头查询字段更新后严格比较场景
* 21. 通过reUseRow为false强制清空表格状态
* 22. reload 后清空选项
* 23. Nested CRUD change to normal CRUD
* 24. CRUD toolbar form
*/

import {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1874,6 +1874,7 @@ exports[`Renderer:checkboxes with creatable & createBtnLabel & addControls & add
<input
autocomplete="off"
class="cxd-Number-input"
name="value"
role="spinbutton"
step="1"
value=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -959,6 +959,7 @@ exports[`Renderer:combo with conditions: add button open 1`] = `
aria-valuenow="0"
autocomplete="off"
class="cxd-Number-input"
name="number"
role="spinbutton"
step="1"
value="1239"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ exports[`Renderer:formula 1`] = `
aria-valuenow="1"
autocomplete="off"
class="cxd-Number-input"
name="a"
role="spinbutton"
step="1"
value="1"
Expand Down Expand Up @@ -155,6 +156,7 @@ exports[`Renderer:formula 1`] = `
aria-valuenow="2"
autocomplete="off"
class="cxd-Number-input"
name="b"
role="spinbutton"
step="1"
value="2"
Expand Down Expand Up @@ -221,6 +223,7 @@ exports[`Renderer:formula 1`] = `
aria-valuenow="3"
autocomplete="off"
class="cxd-Number-input"
name="sum1"
role="spinbutton"
step="1"
value="3"
Expand Down Expand Up @@ -287,6 +290,7 @@ exports[`Renderer:formula 1`] = `
aria-valuenow="4"
autocomplete="off"
class="cxd-Number-input"
name="sum2"
role="spinbutton"
step="1"
value="4"
Expand Down Expand Up @@ -353,6 +357,7 @@ exports[`Renderer:formula 1`] = `
aria-valuenow="5"
autocomplete="off"
class="cxd-Number-input"
name="sum3"
role="spinbutton"
step="1"
value="5"
Expand Down Expand Up @@ -419,6 +424,7 @@ exports[`Renderer:formula 1`] = `
aria-valuenow="5"
autocomplete="off"
class="cxd-Number-input"
name="sum4"
role="spinbutton"
step="1"
value="5"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -999,6 +999,7 @@ exports[`Renderer:input-table init display 1`] = `
aria-valuenow="0"
autocomplete="off"
class="cxd-Number-input"
name="aaa"
role="spinbutton"
step="1"
value="0"
Expand Down Expand Up @@ -1220,6 +1221,7 @@ exports[`Renderer:input-table init display 1`] = `
aria-valuenow="234"
autocomplete="off"
class="cxd-Number-input"
name="score"
role="spinbutton"
step="1"
value="234"
Expand Down Expand Up @@ -1273,6 +1275,7 @@ exports[`Renderer:input-table init display 1`] = `
aria-valuenow="234"
autocomplete="off"
class="cxd-Number-input"
name="score"
role="spinbutton"
step="1"
value="234"
Expand Down Expand Up @@ -1329,6 +1332,7 @@ exports[`Renderer:input-table init display 1`] = `
aria-valuenow="1"
autocomplete="off"
class="cxd-Number-input"
name="level"
role="spinbutton"
step="1"
value="1"
Expand Down Expand Up @@ -1418,6 +1422,7 @@ exports[`Renderer:input-table init display 1`] = `
aria-valuenow="0"
autocomplete="off"
class="cxd-Number-input"
name="score"
role="spinbutton"
step="1"
value="0"
Expand Down Expand Up @@ -1471,6 +1476,7 @@ exports[`Renderer:input-table init display 1`] = `
aria-valuenow="0"
autocomplete="off"
class="cxd-Number-input"
name="score"
role="spinbutton"
step="1"
value="0"
Expand Down Expand Up @@ -1527,6 +1533,7 @@ exports[`Renderer:input-table init display 1`] = `
aria-valuenow="0"
autocomplete="off"
class="cxd-Number-input"
name="level"
role="spinbutton"
step="1"
value="0"
Expand Down Expand Up @@ -1845,6 +1852,7 @@ exports[`Renderer:input-table with combo column 1`] = `
aria-valuenow="88"
autocomplete="off"
class="cxd-Number-input"
name="score"
placeholder="请手动输入分数"
role="spinbutton"
step="1"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ exports[`Renderer:number 1`] = `
aria-valuenow="456"
autocomplete="off"
class="cxd-Number-input"
name="a"
role="spinbutton"
step="1"
value="456"
Expand Down Expand Up @@ -194,6 +195,7 @@ exports[`Renderer:number with big value 1`] = `
aria-valuenow="99999999999999999.99"
autocomplete="off"
class="cxd-Number-input"
name="number"
role="spinbutton"
step="1"
value="99999999999999999.99"
Expand Down Expand Up @@ -312,6 +314,7 @@ exports[`Renderer:number with borderMode 1`] = `
<input
autocomplete="off"
class="cxd-Number-input"
name="number"
role="spinbutton"
step="1"
value=""
Expand Down Expand Up @@ -430,6 +433,7 @@ exports[`Renderer:number with borderMode 2`] = `
<input
autocomplete="off"
class="cxd-Number-input"
name="number"
role="spinbutton"
step="1"
value=""
Expand Down Expand Up @@ -549,6 +553,7 @@ exports[`Renderer:number with precision and default value 1`] = `
aria-valuenow="2.99"
autocomplete="off"
class="cxd-Number-input"
name="number"
role="spinbutton"
step="0.01"
value="2.99"
Expand Down Expand Up @@ -668,6 +673,7 @@ exports[`Renderer:number with prefix & suffix & kilobitSeparator 1`] = `
aria-valuenow="123456"
autocomplete="off"
class="cxd-Number-input"
name="number"
role="spinbutton"
step="1"
value="$123,456%"
Expand Down Expand Up @@ -798,6 +804,7 @@ exports[`Renderer:number with step & precision & displayMode & keyboard 1`] = `
aria-valuenow="14.111"
autocomplete="off"
class="cxd-Number-input"
name="number"
role="spinbutton"
step="3"
value="14.111"
Expand Down Expand Up @@ -926,6 +933,7 @@ exports[`Renderer:number with unitOptions 1`] = `
aria-valuenow="99"
autocomplete="off"
class="cxd-Number-input"
name="number"
role="spinbutton"
step="1"
value="99"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ exports[`Renderer:rating with allowClear 1`] = `
aria-valuenow="0"
autocomplete="off"
class="cxd-Number-input"
name="rating"
role="spinbutton"
step="1"
value="0"
Expand Down Expand Up @@ -442,6 +443,7 @@ exports[`Renderer:rating with colors & inactiveColor 1`] = `
aria-valuenow="3"
autocomplete="off"
class="cxd-Number-input"
name="rating"
role="spinbutton"
step="1"
value="3"
Expand Down Expand Up @@ -745,6 +747,7 @@ exports[`Renderer:rating with readOnly 1`] = `
aria-valuenow="5"
autocomplete="off"
class="cxd-Number-input"
name="rating"
role="spinbutton"
step="1"
value="5"
Expand Down Expand Up @@ -937,6 +940,7 @@ exports[`Renderer:rating with texts & textPosition & textClassName 1`] = `
aria-valuenow="5"
autocomplete="off"
class="cxd-Number-input"
name="rating"
role="spinbutton"
step="1"
value="5"
Expand Down

0 comments on commit 3f349d3

Please sign in to comment.