【问题标题】:JS Promise is stuck to my codeJS Promise 卡在我的代码中
【发布时间】:2018-04-22 22:55:43
【问题描述】:

48 小时过去了,还是想不通。

我正在处理使用 Clarifai api 进行原生反应的承诺。这是我的代码:

function updater(){
      return ClarifaiApp.models.predict("coiner app", "https://www.coinsonline.com/wp-content/uploads/2015/11/Half-Dimes-and-Dimes.jpg").then(

        function(response){
          par1 = response['outputs'][0]['data']['concepts'][0];

          return (par1.name);
        });
     }

export default class CameraScreen extends React.Component {
 render(){
  return(
   function updater2(){
    updater().then(function(getAlll){
     <Text> {getAlll} </Text> //error: trying to add an object - invalid
    });
   );
  }
 }

现在,问题是我想获得 'par1' 的值。问题是,每当我尝试在控制台中获取 getAllll 的值为 par1 时,我都可以获得我想要的字符串,但是当我尝试将它作为 {variable} 添加到文本中时,它会给出一个我正在尝试的错误里面有一个对象。

【问题讨论】:

  • par1.name的值是多少?
  • 它的硬币名称:红色印度硬币。
  • console.log()它时的实际输出是什么?
  • 它给了我输出,一个字符串'红色印度硬币'。这是所需的输出,但无法在 . 中呈现
  • 你试过return &lt;Text /&gt;..吗?

标签: javascript react-native promise clarifai


【解决方案1】:

我认为问题在于您正在尝试在渲染中渲染 Promise。我认为这个信息可能有点误导。这是一个 codepen,它解释了一种处理依赖于异步数据的渲染的方法。

https://codepen.io/sscaff1/pen/bMVvgN

export default class CameraScreen extends React.Component {
 state = { getAll: null }
 componentDidMount() {
   updater().then(getAll => this.setState({ getAll }));
 }
 render(){
  const { getAll } = this.state;
  return getAll ? <Text>{getAll}</Text> : null // you can also put a loader here
  }
 }

【讨论】:

  • 非常感谢。它真的很有帮助。 :)
猜你喜欢
  • 2017-04-14
  • 1970-01-01
  • 1970-01-01
  • 2012-06-06
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 2019-02-06
相关资源
最近更新 更多