Я использую material-table , и я решил реализовать функцию "typeahead", которую имеет Google. Примерно так:
Чтобы понять это, я обернул компонент MTableEditField
своим собственным, который выглядит так:
import React, { useState } from "react";
import { MTableEditField } from "material-table";
const CustomTableEditField = props => {
const [rawValue, setRawValue] = useState(props.value);
const [suggestedValue, setSuggestedValue] = useState("asdasda");
const handleOnChange = value => {
// ... logic to find best match and set state values
};
return (
<MTableEditField
inputProps={
suggestedValue
? {
style: {
backgroundColor: "#557D92",
color: "white",
padding: "offset"
}
}
: {}
}
{...props}
value={suggestedValue ?? rawValue}
onChange={handleOnChange}
/>
);
};
export default CustomTableEditField;
Проблема в том, что когда есть значение, оно выглядит следующим образом:
Я не хочу, чтобы оно изменило весь фон если будет матч. Я хочу, чтобы он сохранил уже напечатанный текст, с добавленным к нему предложенным текстом.
Я посмотрел на градиенты, которые рассматриваются как изображения, размер которых можно изменить, но я не смог получить что-либо для рендеринга .
Это вообще возможно, или я просто трачу свое время?
Редактировать
Stackblitz