Сторонний компонент, это обычно всего лишь "вьюха". Хорошие компоненты, таковыми и являются (
пример) (react virtualized)
Чтобы передать в него свойства - мы просто передаем свойства. Опять же, в качестве
примера (react select 2). Передаем в него, например, options.
Так же, у этого "хорошего" компонента, на изменение автором задуман onChange..
<Select
name="form-field-name"
value="one"
options={options}
onChange={this.setUser} // тот самый onChange
/>
Уже в нем можно смело "дергать" экшен-крейтор родителя, банально:
// текущий компонент
setUser(e) { this.props.setUser(e.target.value) }
// родитель
setUser(id) { this.props.actions.setUser(id) } // вызов redux action-creator
В любом случае, вариантов обратится из потомка к родителю всего два. Причем первый используется в 90% случаев - это передать в props функцию-обработчик.
Второй вариант, созданием компонентов-оберток используется реже и обычно уже на каких-то замороченных ситуациях.