В draft-js как применить класс к Entity, чтобы выделить его, когда пользовательский курсор / выделение находится внутри этого объекта? - PullRequest
0 голосов
/ 07 ноября 2019

Каков наилучший способ применить класс к объекту, чтобы выделить его, когда пользовательский курсор / выделение находится внутри этого объекта? Я попытался передать функцию компоненту сущности, который получает идентификатор из состояния компонента родительского редактора и проверяет его по данным сущностей. Но это не обновляется, и активный класс применяется постоянно, как только пользователь выбрал сущность. Это кажется чрезмерным. Мне не хватает более простого способа ??

// component for textrule entity
export const TextruleComponent = props => {
  if (props.getTextruleId) {
    var id = props.getTextruleId(props.entityKey);
  }
  const entityData = props.contentState.getEntity(props.entityKey).toJS();
  const classes = classNames({ textblock: true, "textblock--active": id === entityData.data.textrule_id });
  return (
    <span className={classes} contentEditable={false}>
      {props.children}
    </span>
  );
};

enter image description here

Примечание после того, как пользователь выбрал сущность, активный класс остается на обеих сущностях.

enter image description here

...