【发布时间】:2021-02-16 22:46:54
【问题描述】:
如何在每次以 react native 打开应用时更改背景图像?
我正在尝试使用 Native 应用程序制作应用程序以进行练习,并决定为其添加一些更动态的样式,但我不知道如何实现它。
当我尝试在其后面添加逻辑时,我不断收到语法错误或导出错误
import React from "react";
import {
StyleSheet,
Text,
View,
StatusBar,
TextInput,
Dimensions,
Platform,
ScrollView,
AsyncStorage,
ImageBackground
} from "react-native";
import { AppLoading } from "expo";
import ToDo from "./ToDo";
const { height, width } = Dimensions.get("window");
const noOfPic = 2;
const imgMap = {
0: "img_0.jpg",
1: "img_1.jpg",
2: "img_2.jpg"
};
export default class App extends React.Component {
state = {
newToDo: "",
loadedToDos: false,
toDos: {}
};
componentDidMount = () => {
this._loadedToDos();
};
render() {
const { newToDo, loadedToDos, toDos } = this.state;
console.log(toDos);
if (!loadedToDos) {
return <AppLoading />;
}
return (
<ImageBackground source={require('./assets/images/img_2.jpg')} style={styles.container}>
<StatusBar barStyle="light-content" />
<Text style={styles.title}>MS ToDo App</Text>
<View style={styles.card}>
<TextInput
style={styles.input}
placeholder={"New To Do..."}
value={newToDo}
onChangeText={this._controlNewToDo}
placeholderTextColor={"black"}
returnKeyType={"done"}
autoCorrect={false}
onSubmitEditing={this._addToDo}
underlineColorAndroid={"transparent"}
/>
<ScrollView contentContainerStyle={styles.toDos}>
{Object.values(toDos)
.sort((a, b) => {
return a.createdAt - b.createdAt;
})
.map(toDo => (
<ToDo
key={toDo.id}
deleteToDo={this._deleteToDo}
uncompleteToDo={this._uncompleteToDo}
completeToDo={this._completeToDo}
updateToDo={this._updateToDo}
{...toDo}
/>
))}
</ScrollView>
</View>
</ImageBackground>
);
}
【问题讨论】:
-
每次打开应用时你都想要随机图片吗?
-
是的,我的资产文件夹中的随机图像,每次我再次打开应用程序时 :)
标签: reactjs image background styles native