react-virtualized Grid.cellRenderer - проблемы с добавлением стиля

Я использую компонент Grid и у меня есть cellRenderer. В нем я пытаюсь добавить стиль backgroundColor во внешний div.

customColumnRenderer(props: GridCellProps): React.ReactNode {  
    ...
      props.style.backgroundColor = "hotpink";
    ...
      return <div style={props.style} 
    ... </div>;   
}

Сначала все хорошо, но потом я немного прокручиваю по вертикали и получаю это исключение:

Uncaught TypeError: Cannot assign to read only property 'backgroundColor' of object '#<Object>'

Когда я смотрю в отладчике. props.style выглядит для меня как простой объект. В документе говорится: «Вы можете добавить дополнительные имена классов или свойства стиля по своему усмотрению».

Любые мысли о том, что я могу делать неправильно?


person Pete Moss    schedule 14.02.2018    source источник


Ответы (1)


Лучший обходной путь, который я мог придумать, - это объединить реквизиты стиля из другого объекта с помощью оператора распространения. Что-то вроде этого:

customColumnRenderer(props: GridCellProps): React.ReactNode {  
    ...
      let myStyles = {backgroundColor: "hotpink"};
      let styles = {...props.style, ...myStyles};
    ...
      return <div style={styles} 
    ... </div>;   
}
person Pete Moss    schedule 15.02.2018
comment
Вот как я предлагаю это сделать. - person bvaughn; 16.02.2018