【发布时间】:2021-09-01 21:26:10
【问题描述】:
我正在浏览 Fabric UI TextField 文档(https://developer.microsoft.com/en-us/fluentui#/controls/web/textfield)。我尝试了几个带有以下两个处理程序的 TextField 示例:-
- onChange
- onGetErrorMessage。
我对这两个处理程序(https://codepen.io/nishchay271095/pen/rNyPKYY?editors=1011)进行了一些实验:-
案例 1. 当使用两个处理程序时,没有任何额外的 TextField 属性,两个处理程序(onChange 和 onGetErrorMessage)都会被调用。
<TextField
label="Controlled TextField"
onChange={onChangeSecondTextFieldValue}
onGetErrorMessage = {onGetErrorMessageHandler}
/>
案例 2. 当使用具有“defaultValue”属性的两个处理程序时,两个处理程序(onChange 和 onGetErrorMessage)都会被调用。
<TextField
label="Controlled TextField"
defaultValue = "hello"
onChange={onChangeSecondTextFieldValue}
onGetErrorMessage = {onGetErrorMessageHandler}
/>
案例 3. 当使用具有 TextField 的“value”属性的两个处理程序时,仅调用了 onChange() 处理程序。
<TextField
label="Controlled TextField"
value="hello"
onChange={onChangeSecondTextFieldValue}
onGetErrorMessage = {onGetErrorMessageHandler}
/>
现在,我有以下疑问:-
- 为什么在案例 3 中没有调用 onGetErrorMessage()?
- value 和 defaultValue 属性如何影响这两个处理程序(onChange 和 onGetErrorMessage)的行为?
【问题讨论】:
标签: reactjs fluent-ui fluentui-react office-fabric