gpt4 book ai didi

javascript - 在 native react 中隐藏条件 View

转载 作者:行者123 更新时间:2023-12-02 23:09:16 25 4
gpt4 key购买 nike

我正在开发 react native 应用程序,我想在加载屏幕之前显示一些加载程序,

我有不同的加载器组件和不同的组件来加载数据,

在 Loader 组件中,我有一个字段 isVisible (true/false),如下所示

constructor(props) {
super(props);
this.state = {
index: 0,
types: ['CircleFlip', 'Bounce', 'Wave', 'WanderingCubes', 'Pulse', 'ChasingDots', 'ThreeBounce', 'Circle', '9CubeGrid', 'WordPress', 'FadingCircle', 'FadingCircleAlt', 'Arc', 'ArcAlt'],
size: 100,
color: "#ff0000",
isVisible: true
}

render() {
var type = this.state.types[this.state.index];

return (
<View style={styles.container}>
<Spinner style={styles.spinner} isVisible={this.state.isVisible} size={this.state.size} type={'ThreeBounce'} color={this.state.color}/>
</View>
);
}

var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
// backgroundColor: '#d35400',
},

spinner: {
marginBottom: 50
},

btn: {
marginTop: 20
},

text: {
color: "white"
}
});

在其他组件中,我在从 api 获取数据后渲染 View 。

constructor(props) {
super(props);
this.state = {
tableHead: ['Form Name', 'Download'],
tableData: [],
isVisible:true
}
}

componentDidMount(){
dataSourceRes =getDocumentList(function(dataSourceRes){
var tableDataRows=[];
for(let i = 0; i < dataSourceRes.length; i++){
var arr=[];
arr.push(dataSourceRes[i].docName, dataSourceRes[i].docPath);
tableDataRows.push(arr);
}
this.setState({
tableData : tableDataRows
});


}.bind(this));
};
render() {

const state = this.state;
const element = (data, index) => (
<TouchableOpacity onPress={() => this._alertIndex(data)}>
<View style={styles.btn}>
<Text style={styles.btnText}>Download</Text>
</View>
</TouchableOpacity>
);

return (
<View style={styles.container}>
<Loader></Loader>
{/* <Loader> */}
<ScrollView>
<Table borderStyle={{borderColor: 'transparent'}}>
<Row data={state.tableHead} style={styles.head} textStyle={styles.textHeader}/>
{
state.tableData.map((rowData, index) => (
<TableWrapper key={index} style={styles.row}>
{
rowData.map((cellData, cellIndex) => (
<Cell key={cellIndex} data={cellIndex === 1 ? element(cellData, index) : cellData} textStyle={styles.text}/>
))
}
</TableWrapper>
))
}
</Table>

</ScrollView>

{/* </Loader> */}

</View>
)
}
}

请让我知道如何解决该问题

最佳答案

你可以这样做

class Foo extends React.Component {
constructor(props) {
this.state = { loading: true };
}

componentDidMount() {
// Fetch data then set state
fetch(something).then(() => this.setState({ loading: false }));
}

render() {
if (this.state.loading) {
return <Loader/>;
}

return <MyComponent/>;
}
}

关于javascript - 在 native react 中隐藏条件 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57449395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com