Reactjs 在平面列表/视图中设置常量

Reactjs 在平面列表/视图中设置常量,reactjs,react-native,Reactjs,React Native,如何在这个VIEW语句中设置const 每次我尝试这样做,我都会遇到任何一行的意外令牌问题 有什么想法吗 render() { return ( <View style={styles.theContainer}> <FlatList data={this.state.data} keyExtractor={(x,i)=>i} renderItem={({item}) => <View>

如何在这个VIEW语句中设置const

每次我尝试这样做,我都会遇到任何一行的意外令牌问题

有什么想法吗

render() {
return (
  <View style={styles.theContainer}>
    <FlatList
    data={this.state.data}
    keyExtractor={(x,i)=>i}
    renderItem={({item}) =>
      <View>
            {
              const fm = (item.featured_media);
              const theMediaLink = `https://example.com/json/media/${ item.featured_media }`;
            }
            <Image source={fm} />
            <HTMLView
              value={item.title.rendered}
              styles={styles.topicTitle}
            />
            <HTMLView
              value={item.excerpt.rendered}
            />
      </View>
    }
    />
  </View>
);
}
render(){
返回(
i}
renderItem={({item})=>
{
const fm=(项目.特色媒体);
常量主题链接=`https://example.com/json/media/${item.featured_media}`;
}
}
/>
);
}

没错。不能像这样在jsx语句中定义变量。但是,您可以稍微重新构造代码,使其更有效:

render() {
return (
  <View style={styles.theContainer}>
    <Text style={styles.topicTitle}>TANGOTOPICS.COM</Text>
    <FlatList
    data={this.state.data}
    keyExtractor={(x,i)=>i}
    renderItem={({item}) => {
      const fm = (item.featured_media);
      const theMediaLink = `https://example.com/wp-json/wp/v2/media/${ item.featured_media
      return (
        <View>
          <Image source={fm} />
          <HTMLView
            value={item.title.rendered}
            styles={styles.topicTitle}
          />
          <HTMLView
            value={item.excerpt.rendered}
          />
        </View>
      )}
    }
    />
  </View>
);
}
这样,const声明就在returnstatemant中,这在Javascript中是无效的。在我的示例中,我没有从
renderItem()
隐式返回任何值,而是首先声明常量,然后显式返回

如果将表达式放在下面的花括号内,则必须显式返回

// doesn't return anything
(param1, param2, …, paramN) => { expression }
// returns the expression
(param1, param2, …, paramN) => { return (expression) } 
// above is equivalent to:
(param1, param2, …, paramN) => expression

我希望这能有所帮助。

为了更好地解释您的问题,我更新了答案。为什么不将renderItem发送到函数?我的答案对您有帮助吗?如果是这样的话,如果你愿意接受,那就太棒了;)哇,马丁!谢谢我投了更高的票。我接受了你的回答!谢谢你,先生。这当然澄清了问题。很明显我是个笨蛋我将用这段代码找出我其余的错误。但在这一点上它显然是有效的。然而,事实证明,我认为我要寻找的图像链接不是图像链接。现在我必须返回并对数据源的媒体树进行第二次拉取,以获取与第一次拉取和连接所有内容相关的GUID。但你向我展示了如何在renderItem内做到这一点。:-)Berkay,我认为将其发送到函数会更好。
renderItem={({item}) => {
      const fm = (item.featured_media);
      const theMediaLink = `https://example.com/wp-json/wp/v2/media/${ item.featured_media
      return (
        <View>
...
(param1, param2, …, paramN) => expression
// doesn't return anything
(param1, param2, …, paramN) => { expression }
// returns the expression
(param1, param2, …, paramN) => { return (expression) } 
// above is equivalent to:
(param1, param2, …, paramN) => expression