В настоящее время я пытаюсь выполнить фильтр в списке тестов, относящихся к типу ITests.Я использую lodash для выполнения фильтрации, потому что кто-то рекомендовал его для выполнения этой задачи.Какова моя цель, когда я выберу тест, тест отфильтрует и покажет соответствующие вопросы.Текущий фильтр, который у меня есть сейчас, я знаю, не работает, я пробовал много разных вариантов, но, похоже, не могу получить правильный фильтр.Любая помощь очень ценится.Я надеюсь, что мои вопросы кратки и имеют смысл с предоставленными фрагментами.
Ниже приведены фрагменты моего кода:
Это код в моей группе рассылки, где я пытаюсь фильтровать вопросы на основевыбранные тесты.Обычная запись, в которой я пытаюсь найти его moduleName как общий ресурс для теста и вопросов.
Это внутри моего ListGroup.tsx, здесь выполняется фильтрация.
import * as React from "react";
import {
UpdateSelectedTestType,
UpdateSelectedTest
} from "../actions/TestActions";
import { ITestState } from "../models/ITestState";
import * as _ from "lodash";
interface IProps {
onUpdatetoggleTestState: typeof UpdateSelectedTestType;
toggleTestState: ITestState;
onUpdateSelectedTest: typeof UpdateSelectedTest;
}
export class ListGroup extends React.Component<IProps> {
public render() {
let question = null
if(this.props.toggleTesttate.selectedTest != undefined)
var selectedtest = this.props.toggleTestState.selectedTest.moduleName
questions = this.props.toggleTestState.questions
var filterquestions = _.filter(questions, function(o){
return _.isMatch(o, selectedtest )
})
console.log(filterquestion)
return (
);
}
}
Это мой toggleButtonReducer.ts
const initialState: ITestState = {
testype: TestType.test1,
tests: dbTest,
questions: dbQuestions,
selectedTest: undefined
//selectedQuestion: undefined
};
Тесты и вопросы имеют общую запись под названием moduleName, поэтому я буду использовать это поле для доступа к отфильтрованным вопросам, основанным на выбранном тесте.
Это мои тестовые действия.тс
export interface ITest {
name: string;
moduleName: string;
testType: TestType
export interface ITest {
name: string;
moduleName: string;