2016-11-09 3 views
1

Я ранг, новый для javascript и React, таким образом, вопрос. Мне нужно отправить данные изнутри компонента. Я использую API извлечения для POST. Это мой код.Публикация данных в Реагировании

export function postData(url, sender, media){ 
    return fetch(url, { headers: { 'Accept': 'application/json', 'Content-Type': 'application/json'}, 
         credentials: 'include', 
         method: 'POST', 
         body: JSON.stringify({sender: sender, media: media}) 
    }) 
    .then((response) => { return response.json() ;}) 
    .catch((error) =>{ console.log("Request failed: ", error) ;}) 

} 

Внутри моего компонента У меня есть два метода, которые получают значения, которые я намереваюсь отправлять из обратных вызовов в дочерних компонентах.

class MyComponent extends React.Component{ 

.......... 
handleClick(sender){ 
    console.log(data); 

    } 

    handleSubmit(media){ 
    console.log(data); 
    } 
...... 
render(){ 
...... 
passing down handleSubmit and handleClick as props to child 
    } 
} 

Как и где в компоненте я называю мой postData метод и как я прохожу sender и media.

ответ

0

Ну, click и submit - это отдельные события, поэтому вам придется немного по-разному архитектовать вещи, если вы хотите, чтобы они оба были переданы.

Насколько вызова postData, это выглядит, как вы должны

import { postData } from foo; 

... в верхней части файла MyComponent, поэтому функция становится доступной. Как только вы импортируете postData, вы можете использовать его внутри функции обработчика событий.

Я просто снял ваш fetch, но похоже, что все должно быть хорошо или, по крайней мере, легко отлаживать.


В итоге: это исправить, так что вы есть один обработчик событий, который будет передан media и sender в качестве аргументов. Затем импортируйте postData и вызовите его в обработчике.

+0

Как я могу помещать носитель и отправитель в 1 обработчик событий, так как они представляют собой два отдельных события в двух дочерних компонентах. –

+0

Вам нужно будет сохранить их в состоянии компонента. Прочитайте «состояние компонента» и соответствующим образом подключите дочерние компоненты. Я немного странный, потому что я некоторое время использую Redux, который управляет вашим состоянием все в одном месте, но, вероятно, слишком много для этого простого проекта. В любом случае, исследование состояния компонентов и ссылок поможет вам, где вы хотите быть :) – Ben

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