@@ -157,35 +157,44 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
157157 /// <inheritdoc/>
158158 /// </summary>
159159 /// <returns></returns>
160- protected override Task InvokeInitAsync ( ) => InvokeVoidAsync ( "init" , Id , Interop , nameof ( TriggerClick ) ) ;
160+ protected override Task InvokeInitAsync ( ) => InvokeVoidAsync ( "init" , Id , Interop , nameof ( OnTriggerClickAsync ) ) ;
161161
162- private CheckboxState NextState => State == CheckboxState . Checked ? CheckboxState . UnChecked : CheckboxState . Checked ;
162+ /// <summary>
163+ /// 触发 Click 方法
164+ /// </summary>
165+ /// <returns></returns>
166+ public async Task TriggerClick ( ) => await OnTriggerClickAsync ( ) ;
163167
164168 /// <summary>
165169 /// 触发 Click 方法 由 JavaScript 调用
166170 /// </summary>
167171 /// <returns></returns>
168172 [ JSInvokable ]
169- public async ValueTask < bool > TriggerClick ( string ? state )
173+ public async ValueTask < bool > OnTriggerClickAsync ( string ? state = null )
170174 {
171- // state 为 null 时表示 Click 事件触发;不为 null 时表示 JavaScript 调用同步状态
175+ // 本组件由于支持 OnBeforeStateChanged 回调方法,所以设计上移除了 onclick 事件,改为通过 JS 调用 TriggerClick 方法
172176 // state 值 1 表示 Checked 状态,0 表示 UnChecked 状态
177+
178+ // state 有值时表示同步状态功能
173179 if ( ! string . IsNullOrEmpty ( state ) )
174180 {
175181 State = state == "1" ? CheckboxState . UnChecked : CheckboxState . Checked ;
176182 return true ;
177183 }
178184
185+ // 调用 OnBeforeStateChanged 回调方法查看是否阻止状态改变
186+ // 返回 true 时改变状态,返回 false 时不改变状态阻止状态改变 preventDefault
187+ var val = State == CheckboxState . Checked ? CheckboxState . UnChecked : CheckboxState . Checked ;
179188 if ( OnBeforeStateChanged != null )
180189 {
181- var ret = await OnBeforeStateChanged ( NextState ) ;
190+ var ret = await OnBeforeStateChanged ( val ) ;
182191 if ( ret == false )
183192 {
184193 return false ;
185194 }
186195 }
187196
188- var render = await InternalStateChanged ( NextState ) ;
197+ var render = await InternalStateChanged ( val ) ;
189198 if ( render )
190199 {
191200 StateHasChanged ( ) ;
0 commit comments