c# - 在 Blazor 中切换按钮标题的正确方法是什么?
问题描述
我有一个名为Earth
具有单个按钮的子组件。我们可以多次按下按钮来启动和停止地球旋转。
<button @onclick="Toggle">
@if (isMoving)
{
<text>Stop Spinning</text>
}
else
{
<text>Start Spinning</text>
}
</button>
@code {
private bool isMoving = true;
private void Toggle()
{
isMoving = !isMoving;
Console.WriteLine(DateTime.Now);
}
}
按钮的标题必须使用 2 个互斥选项Stop Spinning
和Start Spinning
.
我在一个命名如下Earth
的可路由组件中使用该组件。God
@page "/God"
<Earth />
我启动应用程序并导航到God
. 到现在为止还挺好。但是如果我按下按钮,我会得到一个错误:
发生了未处理的错误。重新加载
在调试它时,我指向一个非常长的代码。这里是精简版。
var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof treaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var
问题
在 Blazor 中切换按钮标题的正确方法是什么?
编辑
我用两种浏览器进行了测试:Chrome(不工作)和 Edge(工作)。
解决方案
你可以这样做:
<button @onclick="Toggle">@Caption</button>
@code {
private string Caption => isMoving ? "Start Spinning" : "Stop Spinning";
private bool isMoving = true;
private void Toggle()
{
isMoving = !isMoving;
Console.WriteLine(DateTime.Now);
}
}
推荐阅读
- python - 使用什么参数作为唯一的计算机 ID 来保护我的应用程序
- java - JNA - 如何将 `char ***devices` PointerByReferences 转换为 `char **devices` PointerByReference
- python - 使用正则表达式(和请求)在跨度后抓取文本
- python - 当我稍后设置变量值时,如何避免来自 Pylint 的“不可下标”类型检查?
- c++ - 用零填充缺失的用户输入
- java - RecyclerView onCreateViewHolder 方法未调用
- optimization - 仅包含 3 个元素的两个向量的 AVX 优化相加
- javascript - 当特定变量的值发生变化时,浏览器的 devTool 中是否有办法中断代码?
- c# - 如何读取文件并将数据传递到数组中。C#
- clearcase - 如何在快照视图(Base ClearCase 7.1.2.9,无 UCM)中选择特定版本的根文件夹 (.)?