#javascript #html #reactjs #redux #redux-form
#javascript #HTML #reactjs #redux #redux-форма
Вопрос:
Используя форму Redux, я могу получить значения, которые я ввожу в username. Я могу отфильтровать соответствующие значения, но мне нужно отобразить мои отфильтрованные значения в браузере.
console.log("pilot.name--->", pilot.name);
Можете ли вы сказать мне, как это сделать? Я предоставил свой фрагмент кода и изолированную среду ниже. Мой связанный код находится в showResults.js:https://codesandbox.io/s/xl1r14w854 .
var pilots = [
{
id: 2,
name: "Wedge Antilles",
faction: "Rebels"
},
{
id: 8,
name: "Ciena Ree",
faction: "Empire"
},
{
id: 40,
name: "Iden Versio",
faction: "Empire"
},
{
id: 66,
name: "Thane Kyrell",
faction: "Rebels"
}
];
var rebels = pilots.filter(function(pilot) {
// return pilot.faction === "Rebels";
// return pilot.faction === values.username;
if (pilot.faction === values.username) {
console.log("pilot.name--->", pilot.name);
}
});
Комментарии:
1. Если я использую свое имя пользователя как ‘Empire’, это работает нормально. Какова ожидаемая функциональность?
2. @ShivamGupta привет, санск за твой ответ… отфильтрованные значения Мне нужно отобразить в браузере в виде списка
console.log("pilot.name--->", pilot.name);
3. вы имеете в виду, что хотите показать это пользователю, если проверка pilot.faction верна?
4. когда это условие выполняется ` if (pilot.faction === values.username) {`, тогда мне нужно показать pilot.name пользователям
5. Поскольку у вас уже есть window. предупреждение. Используйте это внутри окна if condition, like. предупреждение (pilot.name )
Ответ №1:
Я предлагаю использовать для этого отдельный редуктор. Представьте, что вы вызываете этот редуктор PilotsReducer
, в котором у вас есть список пилотов в состоянии. Этот редуктор «прослушивает» определенное действие, подобное loginSubmitted
, которое вы запускаете, когда получаете ответ от сервера.
Полезной нагрузкой этого действия будет имя пользователя, которое вы используете для выполнения фильтрации. Затем в reducer вы можете выполнить фильтр и установить свойство state (например, rebels
) для результата фильтра. Затем ваш компонент можно подключить к redux, чтобы выбрать rebels
свойство, и он повторно отобразит, когда это свойство изменится.
Это типичный поток react / redux, он не специфичен для вашего примера
Кстати, вы можете улучшить ее, используя reselect
, чтобы сохранить весь список пилотов в состоянии и отфильтровать их в selector
, передав ему текущее имя пользователя. Пожалуйста, ознакомьтесь с документами и руководствами redux и повторно выберите, чтобы иметь четкое представление обо всем рабочем процессе.