есть hoc withUser, который прокидывает два пропса: объект user и функцию updateUser
                  
                  
                  
                  
                  
                  Я пишу компонент:
                  
                  
                  
                  
                  
                  function UserButton({ user, ...htmlProps }) {
                  
                  
                     return <button style={{ color: getFavColor(user) }} {...htmlProps}>hello, world</button>
                  
                  
                  }
                  
                  
                  
                  
                  
                  export default withUser(UserButton);
                  
                  
                  
                  
                  
                  Кто-нибудь уже видит проблему? Проблема в том, что в ...htmlProps по-любому попадёт ненужный проп updateUser, которому на хтмл-элементе делать нечего.
                  
                  
                  
                  
                  
                  К сожалению, рекомпоузом эту проблему никак не решить. Вот такая попытка приведёт нас к новой проблеме:
                  
                  
                  
                  
                  
                  export default comspose(
                  
                  
                    withUser,
                  
                  
                    mapProps(props => ({ user: props.user }),
                  
                  
                  )(UserButton);
                  
                  
                  
                  
                  
                  Проблема в том, что теперь в ...htmlProps не попадут вообще никакие дополнительно прокинутые пропсы
                  
                  
                  
                  
                  
                  Решение я вижу только одно, уродливое — написать некую omit функцию, которая будет знать про все возможные хтмл-пропсы. Но это отвратительно
                  
                  
                  
                  
                  
                  Единственное другое решение это знать о том, какие именно пропсы даёт withUser. Но в этом блин и проблема — мы этого не знаем и с ХОКами эту информацию легко не получить
                  
                  
                
не фильтруй пропсы, просто строй расширение и все вроде ок
 from
                          earth
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          from
                          earth
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  вот с рендер-пропсами такой проблемы нет
Не надо прокидывать в компонент то, что не надо прокидывать в компонент
Вот тебе omit ```mapProps(({ updateUser, ...rest }) => rest```
Обсуждают сегодня