React:在函数外进行变量重用

时间:2018-07-12 21:29:26

标签: reactjs react-native

async loadData() {
    const searchUrl = `http://jpninfo.com/`;
    const response = await fetch(searchUrl);      // fetch page 

    const htmlString = await response.text();     // get response text
    const $ = cheerio.load(htmlString);           // parse HTML string
    const list = $('body > div.off-canvas-content > div > main > div:nth-child(1) > div > article:nth-child(1) > h3 > a')
  }

  render() {
    return (
      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
        <Text>{list.text()}</Text>
        <Button
          title="Go to Details"
          onPress={() => this.props.navigation.navigate('Details')}
        />
      </View>
    );
  }

我想用list值填充Text字段,但是我无权访问。如何在不设置状态的情况下访问它。

1 个答案:

答案 0 :(得分:0)

我看到它已经是一个类组件。在loadData函数中创建const时,其范围仅限于该函数。您可以将其更改为使用类属性。

代替

const list = 'value';

在下面使用

this.list = 'value';

然后使用渲染功能

<div>{this.list}</div>

但是请意识到,如果更新类组件的list属性,则该组件不会重新呈现,因为它既不是状态也不是道具。如果您不想在此组件中有状态。您可以将其提升到父组件并作为道具传递给该组件。

我想知道,你为什么不想要它成为州呢?看来您需要它。