Угловые сигналы реагируют на изменения локального состояния, но не на изменения от входного сигналаJavascript

Форум по Javascript
Ответить
Anonymous
 Угловые сигналы реагируют на изменения локального состояния, но не на изменения от входного сигнала

Сообщение Anonymous »

У меня есть этот сценарий, где родительский компонент принесет данные пользователя, а затем показывают в пользовательском интерфейсе, код ниже: < /p>

Код: Выделить всё

@Component({
selector: 'app-root',
imports: [Child, FormsModule],
template: `
User Details
@if(resource.value(); as user) {
Title: {{user.title}}

}
Reload User Data
`,
})
export class App {
http = inject(HttpClient);
id = signal(1);
resource: ResourceRef = rxResource({
request: () => this.id(),
loader: ({ request: id }: any) =>
this.http.get(
`https://jsonplaceholder.typicode.com/todos/${id}`
),
});

refresh() {
this.resource.reload();
}
}
Точно так же у меня есть символьный компонент, который отвечает за показание счета и кнопку тому подобное/неприязнь.

Код: Выделить всё

@Component({
selector: 'app-like-button',
imports: [FormsModule],
template: `
Child
likes: {{likes()}}
Like
Dislike
`,
})
export class Child {
< /code>

  // local state for this component
likes: ModelSignal = model.required();

constructor() {
effect(() => {
const likesCount = this.likes();
// trigger an API call to save the like button press:
console.log(likesCount);
});
}

like() {
this.likes.update((likesPrev: number) => likesPrev + 1);
}

unLike() {
this.likes.update((likesPrev: number) => likesPrev - 1);
}
}
В приведенном ниже коде я оказываю эффект, который реагирует на изменения символов , под реагированием я имею в виду, что изменения сохраняются в базе данных с использованием put Вызов API.
Проблема в том, что я использую эффект, который реагирует на Likes изменения сигнала. Таким образом, во время инициализации называется вызов API put , который не требуется.
demo
- это то, что вызов API (представлен console.log ) не должен стрелять при начальной нагрузке. /п>

Подробнее здесь: https://stackoverflow.com/questions/794 ... input-sign
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»