Пожалуйста, исправьте меня, если я ошибаюсь, но в настоящее время это невозможно с помощью замены, поскольку замена заменит весь наблюдаемый массив, и вместо этого следует использовать карту?MobX - Замена элемента в наблюдаемом массиве?
У меня есть наблюдаемый массив как это:
@observable questionsList = [];
На сервере вызова он получает заполняется с 2-мя объектами, каждый с отдельной id
поля, поэтому он будет выглядеть следующим образом:
@observable questionsList = [
{id: 1,
question: "Is the earth flats?",
answer: "Some long answer here..."
{id: 2,
question: "Does the moon have life?"}
answer: "Some long answer here..."}
];
Таким образом, вопрос с id of 1
имеет типографскую окантовку, требующую фиксации, должен быть Is the earth flat?
Да, обязательно необходимо знать:
const newQuestionId = 1;
const newQuestion = "Is the earth flat?"
const oldQuestion = this.questionsList.find(question => question.id === newQuestionId);
oldQuestion.replace(newQuestion) // Would be nice if this syntax worked
Теперь у меня есть правильный oldQuestion
, но как я могу заменить его в questionList
массив с новым вопросом? Я попытался заменить, но это не сработало. Является ли карта единственным способом? Если это так, я не уверен, как заставить карту работать, поскольку я работал только с наблюдаемыми массивами.
Как это сделать с помощью MobX?
может быть что-то не хватает, но почему бы не просто: 'questionsList.find (вопрос => question.id === ID) .question =«Is земля плоская "? – mweststrate