도쿄사는 외노자

Warning: 'td' was passed a style object that has previously been mutated. 본문

Tech/React.js

Warning: 'td' was passed a style object that has previously been mutated.

Enrai 2017. 2. 9. 12:05

자작 데이터테이블에서 column에 mouse hover를 할 경우 background의 색깔을 변경하도록 했는데,

꼭 한번씩 이런 warning이 뜨더라.



받아온 style props가 mutated당했다는 내용.

뭐 여기서 이미 눈치챈 사람도 있겠지만서도...

문제는 render를 하는 과정에서 적었던 이 코드였다.


1
2
3
4
5
6
7
8
9
10
return (
  <td
    className={className}
    style={assign(styles.root, style)}
    {...handlers}
    {...other}
  >
    {content}
  </td>
);
cs


props값이 파괴된다면 어째야 한다고?

「props의 데이터가 파괴되는 문제」 참조


1
2
3
4
5
6
7
8
9
10
return (
  <td
    className={className}
    style={assign({}, styles.root, style)}
    {...handlers}
    {...other}
  >
    {content}
  </td>
);
cs


assign에서 맨 앞에 {}를 붙이는 것으로 해결되었다.