Как сохранить ответ Twitter API в реакции и использовать его позже в компонентах

Это сделало то, что мне было нужно. К сожалению, это не позволяет вам ответить «да / нет», но теперь он выполняет свою работу.

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

  - name: Upgrade Starting
    shell: |
      yes | /tmp/bin/update_script.sh
0
задан Gagandeep Gambhir 19 January 2019 в 00:47
поделиться

2 ответа

Проблема в том, что спереди нет ничего личного. Лучше всего иметь свой бэкэнд, я думаю, с помощью узла и сохранить его в переменных процесса env.

0
ответ дан Fernando Colom 19 January 2019 в 00:47
поделиться

Необходимо сделать что-то как, я сделал:

серверный код:

Основной компонент:

const express = require('express');
const server = express();
const path = require('path');   
const tweets = require ('./tweets')
const distFolder = path.join(__dirname, '../my-app/build')

server.use("/api/tweets", tweets, function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  next();
}
)

server.use(express.static(distFolder))

server.listen(process.env.PORT || 9090)

tweets.js компонент:

    router.get('/', (req, res) => {
  client.get('statuses/user_timeline', params, function(error, tweets, response) {    
    if (!error) {     
      res.send(tweets);          
    } 
    else {
      res.status(500).json({ error: error });
    }}
  )})

Теперь я могу сделать ПОЛУЧЕНИЕ к/api/post, и экспресс будет перенаправлен к client.get и возвратит твиты.

Посмотрите, что мой Реагировать Компонент:

lass Notifications extends Component {
  constructor(props) {
    super(props);

    this.state = {
      hits: [],
      isLoading: false,
      error: null,
    };
  }

  componentDidMount() {
    this.setState({ isLoading: true });

    Axios.get('http://127.0.0.1:9090/api/tweets'
    ,{
     headers: {
      'Access-Control-Allow-Origin': '*',          
     }}
    )   
    .then(result => this.setState({
        hits: result.data,
        isLoading: false
    }))
    .catch(e => console.log(e));
  }
    render() {    
const { hits, isLoading } = this.state;    
if (isLoading) {
  return (
    <div className='feed_main'>       
          <h2 className="js-ariaTitle">
            Loading...
          </h2>
        </div>
  )
}
else {
  return hits.map((data) =>    
    <div className='feed_main'>
      <strong className="fullname">{data.user.name}</strong>
      <article
        key={data.id}
      >{data.text}
      </article>
      <br />          
        </div>
      )
    }
  }
}    

export default Notifications;
0
ответ дан Yan Husid 19 January 2019 в 00:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: