Обновление массива в dataSource SelectBox'a ReactJS

Совсем недавно начал изучать React и столкнулся с такой проблемой. Необходимо создать SelectBox (именно его) с некоторым функционалом. Функционал заключается в контекстном поиске на основании введенных данных в SelectBox. Итак, есть некий набор данных:

export const lstObj = [
    {id:0, name:"aaaaaaaaaaaaaa"},
    {id:1, name:"aaaaaaaaerfwaa"},
    {id:2, name:"aaaaasdvasdvaa"},
    {id:3, name:"sdvsddxaaaaaaa"},
    {id:4, name:"absdgfsdgsdsdd"},
    {id:5, name:"sdhsdhsthsrthe"}
];

и сам компонент:

import React, {useState} from "react";
import SelectBox from "devextreme-react/select-box";
import { lstObj } from "./componentConst";

const CustomSelectBox = (props) => {
    const [currVal, setCurVal] = useState()
    const [dataSrc, setDataSrc] = useState([]);

    const countRow = 2;

    function onSelectBoxInput(e) {
        const inputText = e.event.target.value;
        
        const newDataSrc = lstObj.filter((data) => {
            return data.name.includes(inputText);
        }).slice(0, countRow);
        setDataSrc(newDataSrc);
    }

    return(<>
    <h1>{currVal}</h1>
    <SelectBox
        dataSource={dataSrc}
        displayExpr={"name"}
        valueExpr={"id"}
        width={580}
        value={currVal}
        searchEnabled={true}
        showDropDownButton={false}
        activeStateEnabled={true}
        onValueChange={setCurVal}
        onInput={onSelectBoxInput}
    />
    </>)
}

export default CustomSelectBox;

Дело в том, что поле добавления строки setDataSrc(newDataSrc); в поле SelectBox'a невозможно ввести более одного символа, при этом этот символ не отображается.
Ввел символ a ввел символ a затем ввел символ 1 следом ввел символ 1

Предполагаю, что компонент рендерится заново при каждом введем значении, но не понимаю как этого избежать, мне ведь необходимо после каждой нажатой клавиши делать репоиск по массиву.


Ответы (0 шт):