在所有页面加载时运行方法的更好方法?

问题描述 投票:0回答:1

假设我想为访问者在所有页面上进行一些日志记录 -

在我的每个页面上,都有这样的内容:

protected override async Task OnInitializedAsync()
{
    logger.log(user);
}

有没有更好的方法告诉 blazor 我想要

logger.log
运行所有页面
OnInitializedAsync
?或者我必须为每个页面手动执行此操作。

或者,是否有更好的用户日志记录方法?

c# blazor load
1个回答
0
投票

创建一个组件,从中继承要应用记录器的所有页面。

我实现了

SetParametersAsync
中的功能,所以你不需要每次都记得调用底座。

public class MyPage : ComponentBase
{
    public override Task SetParametersAsync(ParameterView parameters)
    {
        // Set the parameters
        parameters.SetParameterProperties(this);

        logger.log(user);

        //Call base with an empty parameter view as we've already set them
        return base.SetParametersAsync(ParameterView.Empty);
    }
}
@page "/"

@inherits MyPage

//...
© www.soinside.com 2019 - 2024. All rights reserved.