Компонент не должен изменять собственные свойства.
Собственные свойства (props) следует расценивать как вводные параметры для определенного компонента и эти параметры изменять не следует.
Технически их можно изменять, но крайне не рекомендуется, потому что свойства конкретного компонента определяются родительским компонентом. Родительский компонент передаёт определенные свойства своим дочерним компонентам.
Компонент может изменять собственное состояние, если такое состояние у него имеется.
Компонент не может изменять состояние других компонентов, включая состояние дочерних, либо родительских компонентов.
В React существует такое правило, что состояние (state) должно меняться в том компоненте, который является собственником этого состояния.
При этом в React можно влиять на изменение состояния других компонентом.
Любой из компонентов ниже по иерархии может отправить запрос на изменение состояния вышестоящего компонента.
Резюме:
У каждого компонента есть свойства (props), которые передаются ему от родителя и при этом эти свойства изменять не рекомендуется.
Их необходимо воспринимать как входящую информацию для конкретного компонента.
Если необходимо изменять какие-то данные внутри компонента, то следует использовать состояние компонента (state). С помощью изменения именно состояния компонента можно изменять компонент во время его жизненного цикла.
Если у компонента есть дочерние компоненты, то можно передавать им свойства.
Можно передавать часть своих свойств и состояния дочерним компонентам в виде свойств.
Можно от родительского компонента принять какие-то свойства, далее добавить часть своего состояния, сформировать свойства для дочернего компонента и передать ему эти свойства тем самым повлияв на поведение и внешний вид дочернего компонента.