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字段,但是我无权访问。如何在不设置状态的情况下访问它。
答案 0 :(得分:0)
我看到它已经是一个类组件。在loadData函数中创建const时,其范围仅限于该函数。您可以将其更改为使用类属性。
代替
const list = 'value';
在下面使用
this.list = 'value';
然后使用渲染功能
<div>{this.list}</div>
但是请意识到,如果更新类组件的list属性,则该组件不会重新呈现,因为它既不是状态也不是道具。如果您不想在此组件中有状态。您可以将其提升到父组件并作为道具传递给该组件。
我想知道,你为什么不想要它成为州呢?看来您需要它。