2017-02-13 1 views
0

Я тренируюсь с помощью React-Redux. Я знаю, что этот вопрос звучит довольно просто ... Но я не могу понять, как его решить. У меня есть функция, которая будет генерировать объект. Я хочу передать его в магазин, но я не знаю, как запускать действие без действия пользователя (например, кнопка клика).Redux React - Как обновить хранилище без события пользователя?

const MyComponentA =() => (
    <BuiltInCompoment propA={data} propB={ FunctionA } /> 
) 
function FunctionA(object) { 
     ... 
     FunctionB(object.property) 
} 

Функция FunctionB вернет объект (или, возможно, файл JSON). Итак, как передать этот объект (или json) в хранилище, чтобы использовать его в другом компоненте?

Ниже я покажу свою последнюю попытку. Я знаю, что это неправильно и не имеет большого смысла. Но, возможно, он разъясняет немного больше, что я хочу (передача данных для хранения, чтобы отобразить его в другом компоненте, который не является дочерним элементом контейнера). «BiultInComponent» не может быть изменен, чтобы включить prop «resultData». Я новичок, поэтому вполне вероятно, что я ошибаюсь в отношении некоторых пунктов/предположений.

class MyContainerA extends Component { 
     render() 
     return (
      <BuiltInCompoment propA={data} propB={ FunctionA } /> 
     ) 
    } 

    function matchDispatchToProps(dispatch){ 
     return bindActionCreators({resultingData: resultingData}, dispatch); 
    } 

function FunctionA(object) { 

     ... 
     var dataToPassToStore = FunctionB(object.property); 
     return this.props.resultingData(dataToPassToStore) 
} 

exports default connect(matchDispatchToProps)(MyContainerA) 

Любые предложения будут приветствоваться. Благодарю.

+0

Привяжите действие к компоненту, и вы можете просто вызвать свое действие через опору. – Win

+0

компоненты существуют только для отображения данных и обработки событий (клики, ответы ajax и т. Д.). При каких обстоятельствах вы хотите передать этот объект в свой магазин? Загрузка страницы? Начальное состояние? В значительной степени все это своего рода «событие» – azium

+0

Спасибо за ваши ответы @Win. Я только что добавил пример того, что у меня есть. – Dubliner

ответ

0

Изучите отправку actions и reducers. Я считаю, что оба эти фактора, которые являются основой для сокращения, помогут вам достичь того, что вы пытаетесь сделать.

+0

Привет @Patrick. Спасибо за ваш комментарий. У меня уже есть редуктор и действие. Я не могу понять, как передать его в магазин. Должен ли я создать контейнер MyContainerA вместо MyComponentA? Вероятно, это будет действительно простая вещь ... но я могу это увидеть. Я читал об отправке и bindActionCreator ... – Dubliner

+0

«MyComponentA» подключен к магазину? – patrick

+0

Привет @Patrick. Нет, это не так. Это поможет, если это будет связано? Предположим, что - это форма, которая захватывает и обрабатывает данные с помощью FunctionB. И я хочу отобразить обработанные данные в другой части приложения. Вот почему мне нужно передать его в магазин. – Dubliner

Смежные вопросы