onlyUpdateForKeys([...keys])
Компонент высшего порядка ожидает React компонент в качестве аргумента, в то время как children
является React элемент :
onlyUpdateForKeys([...keys])(children)
Это будет работоспособнонапример:
export const OnlyUpdateForKeys = ({ keys, children }) => {
const EnhancedChild = onlyUpdateForKeys([...keys])(props => children);
return <EnhancedChild/>;
};
Но это не имеет смысла, потому что не препятствует обновлению дочернего компонента.OnlyUpdateForKeys
создается на каждом EnhancedInput
рендере.Input
отображается каждый раз, когда EnhancedInput
также отображается, потому что children
отображается любым способом - иначе они не были бы доступны как props.children
.
, хотя onlyUpdateForKeys
предполагается использоватьas:
const EnhancedInput = onlyUpdateForKeys(['name'])(props => (
<Input ... />
))
Это короче и эффективнее, чем OnlyUpdateForKeys
служебный компонент.