我想從我正在使用的 API 中獲取隨機參考,但是在頁面加載時它不顯示參考,僅在按下按鈕后,該函式沒有系結到任何東西,但是當我出于某種原因單擊按鈕時它可以正常作業。我嘗試執行從端點正確加載報價的方法,但僅在單擊按鈕時才輸入 if(quote != null) 。
`
@page "/"
@inject HttpClient Client
<PageTitle>Index</PageTitle>
<body>
<h3 class="title">Breaking bad</h3>
<div class="div1" >
<input type="text" class="accordion-button" placeholder="Personaje" @bind="nombre" />
<input type="button" @onclick="GetCharacter" class="button" />
</div>
@if (aratzfag == false){
@GetRandomQuote();
@if(quote != null){
<p>@quote[0].quote</p>
}
}
<div class="div2" style="display:@display">
@if (character != null)
{
<div class="card-body">
<br>
<Character name=@character[0].name/>
<Character nickname=@character[0].nickname />
@for (int i = 0; character[0].occupation.Length > i; i ){
string a = character[0].occupation[i];
<span>@a</span>
<br/>
}
<br />
@if(character[0].name == "Saul Goodman"){
<img src="https://media.tenor.com/pMhSj9NfCXsAAAAd/saul-goodman-better-call-saul.gif" width="250px" height="250px" />
}else if (character[0].name == "Walter White")
{
<img src="https://c.tenor.com/0VT7jilszwEAAAAC/mr-white-heisenberg.gif" width="250px" height="250px" />
}
else{
<img src="@character[0].img" width="250px" height="250px" />
}
</div>
}else if(character == null){
<div class="card-body">
<h3>El personaje introducido no existe, introduce bien el nombre</h3>
</div>
}
</div>
</body>
@code {
string nombre = "";
Class1[] character;
Class2[] quote;
string display = "none";
bool aratzfag = false;
async Task GetCharacter(){
// var task = await Client.GetFromJsonAsync<Class1>(Endpoints.GetCharacter(nombre));
// var jsonString = await task.Content.ReadAsStringAsync();
// Class1[] result = System.Text.Json.JsonSerializer.Deserialize<Class1[]>(task);
// Rootobject characterData = await Client.GetFromJsonAsync<Rootobject>(Endpoints.GetCharacter(nombre));
// characters = System.Text.Json.JsonSerializer.Deserialize<Class1>(Endpoints.GetCharacter(nombre));
// var a = System.Text.Json.JsonSerializer.Deserialize<List<Class1[]>>(Endpoints.GetCharacter(nombre));
character = await Client.GetFromJsonAsync<Class1[]>(Endpoints.GetCharacter(nombre));
if (character.Length == 0){
character = null;
}
display = "flex";
//aa = System.Text.Json.JsonSerializer.Deserialize<Class1>(characters);
// var personaje = Endpoints.GetCharacter(nombre);
// characters = await Client.GetFromJsonAsync<Rootobject>(Endpoints.GetCharacter(characters1.Property1[0].name));
}
async Task GetRandomQuote()
{
quote = await Client.GetFromJsonAsync<Class2[]>(Endpoints.GetRandomQuote());
}
}
`
I also tried
`
protected override async Task OnAfterRenderAsync(bool firstRender)
{
quote = await Client.GetFromJsonAsync<Class2[]>(Endpoints.GetRandomQuote());
}
`
protected override async Task OnInitializedAsync()
但不會輸入 if 陳述句并顯示報價,只有當我互動按鈕時。我確保對其進行除錯并從 api 獲取報價,但將其寫在頁面上。
頁面加載
我點擊輸入框右側的按鈕后
uj5u.com熱心網友回復:
您希望在打開頁面時顯示隨機報價,而不是在每次重新呈現某些內容時更改報價,請使用OnInitializedAsync(). 您的第一段代碼顯示您在沒有 的 UI 部分中呼叫GetRandomQuote(即) ,這應該在該部分中呼叫。async Taskawaitawait@code
protected override async Task OnInitializedAsync()
{
await GetRandomQuote();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/528803.html
