По-перше, це може спричинити деякі важко налагоджувані проблеми з продуктивністю, особливо якщо ви використовуєте redux.
Якщо ви використовуєте об'єкти, списки чи функції, це будуть нові об'єкти на кожному візуалізації. Це може бути погано, якщо у вас є складні компоненти, які перевіряють ідентичність компонента, щоб побачити, чи слід робити рендерінг.
const Component = ({ prop1 = {my:'prop'}, prop2 = ['My Prop'], prop3 = ()=>{} }) => {(
<div>Hello</div>
)}
Зараз це працює нормально, але якщо у вас є більш складні компоненти та стан, такі як підключені компоненти response-redux із підключенням до бази даних та / або реакція useffect хуки та стан компонента, це може спричинити багато повторного відтворення.
Як правило, кращою практикою є створення об’єктів проп за замовчуванням, що створюються окремо, наприклад.
const Component = ({prop1, prop2, prop3 }) => (
<div>Hello</div>
)
Component.defaultProps = {
prop1: {my:'prop'},
prop2: ['My Prop'],
prop3: ()=>{}
}
або
const defaultProps = {
prop1: {my:'prop'},
prop2: ['My Prop'],
prop3: ()=>{}
}
const Component = ({
prop1 = defaultProps.prop1,
prop2 = defaultProps.prop2
prop3 = defaultProps.prop3
}) => (
<div>Hello</div>
)