key, value = max(stats.iteritems(), key=lambda x:x[1])
Если вы не заботитесь о ценности (я был бы удивлен, но), вы можете это сделать:
key, _ = max(stats.iteritems(), key=lambda x:x[1])
Мне нравится распаковка кортежей лучше, чем индекс [0] на конец выражения. Мне очень не нравится читаемость лямбда-выражений, но найти это лучше, чем operator.itemgetter (1) IMHO.
Чтобы добавить больше к тому, что сказал @AliAnarkali, HOC возвращает вам компонент, поэтому, когда вы пишете, как
const EnhancedApp = withProps(App);
, EnhancedApp в основном
const EnhancedApp = props => {
return <Component {...props}/>
}
, который является функциональным компонентом и когда вы рендерите EnhancedApp, например
<EnhancedApp onChange={this.onChange} value={this.state.value} />
Это похоже на то, как функциональный компонент получает onChange и значение в качестве реквизита и, следовательно, в HOC, внутренняя функция получает такие реквизиты.