【问题标题】:InputNumber requires a value for the 'ValueExpression' parameterInputNumber 需要“ValueExpression”参数的值
【发布时间】:2021-07-29 20:46:18
【问题描述】:

我正在尝试构建一个使用内置组件 'InputNumber' 的组件,如下所示:

孩子:

  @typeparam T
  <InputNumber TValue="T" Value="@ValueChild" @onchange="OnValueChildChanged" id="input1" />
   

    @code {
        
        [Parameter]
        public T ValueChild { get; set; }
        [Parameter]
        public EventCallback<T> ValueChildChanged { get; set; }

        public async Task OnValueChildChanged(ChangeEventArgs e)
        {
            ValueChild = (T)e.Value;
            await ValueChildChanged.InvokeAsync(ValueChild);
        }
    }

我这样称呼它:

家长

<InputNumberPerso T="int?" @bind-ValueChild="@ForumuleModel.FR_TPSMALA"> </InputNumberPerso>

但我收到此错误消息;我做错了什么?

> blazor.webassembly.js:1 crit:
> Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
>       Unhandled exception rendering component: Microsoft.AspNetCore.Components.Forms.InputNumber`1[System.Nullable`1[System.Int32]]
> requires a value for the 'ValueExpression' parameter. Normally this is
> provided automatically when using 'bind-Value'.

【问题讨论】:

  • 有人可以帮忙吗?

标签: blazor blazor-webassembly


【解决方案1】:

这应该工作:

孩子:

@typeparam T

<InputNumber @bind-Value="ValueChild" id="input1" />


@code {
    
    [Parameter]
    public EventCallback<T> ValueChildChanged { get; set; }

    private T _valueChild;

    [Parameter]
    public T ValueChild
    {
        get => _valueChild;

        set
        {
            if (!EqualityComparer<T>.Default.Equals(_valueChild, value))
            {
                _valueChild = value;  
                ValueChildChanged.InvokeAsync(value);
            }

        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-14
    • 2020-03-24
    • 2023-03-14
    • 2018-01-08
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    相关资源
    最近更新 更多