Flatlist 不添加值 React Native
Flatlist doesn't add values React Native
export class mondayExercises extends Component {
constructor(props) {
super(props);
this.state = {
sets: [],
};
}
static getDerivedStateFromProps(props, state) {
if (props.route.params?.set) {
return {
sets: [...state.sets, props.route.params.set],
};
}
return null;
}
render() {
return (
<Container>
<FlatList
data={this.state.sets}
renderItem={(item) => (
<View style={{ padding: "5%" }}>
<View>
<Text>{item.title}</Text>
<TextInput
placeholder="sets"
keyboardType="numeric"
maxLength={3}
textAlign="center"
defaultValue={item.sets}<--------
/>
<TextInput
placeholder="reps"
keyboardType="numeric"
maxLength={3}
textAlign="center"
defaultValue={item.reps}<------------
/>
<TextInput
keyboardType="numeric"
maxLength={4}
textAlign="center"
defaultValue={item.weigth}<----------
/>
</View>
</View>
)}
keyExtractor={(item, index) => item.key.toString()}
/>
</Container>
数组示例
Array [
Object {
"exerciseName": Object {
"exerciseName": "Barbell Bench Press",
},
"key": 0.7455255006925475,
"reps": 0,
"sets": 0,
"weigth": 0,
},
你好,我现在正在学习在 React Native 中做 Faltlists,我试图在上面的 Flatlist 中显示 Array List 中的项目,但是当我显示 none 的值时插入一个 console.log() 它只是在终端
中说未定义
您需要解构 renderItem 函数的参数,因为它是一个具有 item
字段的对象:
renderItem={({item}) => (
我还建议从您的 JSX 中提取该函数以提高渲染性能。
export class mondayExercises extends Component {
constructor(props) {
super(props);
this.state = {
sets: [],
};
}
static getDerivedStateFromProps(props, state) {
if (props.route.params?.set) {
return {
sets: [...state.sets, props.route.params.set],
};
}
return null;
}
render() {
return (
<Container>
<FlatList
data={this.state.sets}
renderItem={(item) => (
<View style={{ padding: "5%" }}>
<View>
<Text>{item.title}</Text>
<TextInput
placeholder="sets"
keyboardType="numeric"
maxLength={3}
textAlign="center"
defaultValue={item.sets}<--------
/>
<TextInput
placeholder="reps"
keyboardType="numeric"
maxLength={3}
textAlign="center"
defaultValue={item.reps}<------------
/>
<TextInput
keyboardType="numeric"
maxLength={4}
textAlign="center"
defaultValue={item.weigth}<----------
/>
</View>
</View>
)}
keyExtractor={(item, index) => item.key.toString()}
/>
</Container>
数组示例
Array [
Object {
"exerciseName": Object {
"exerciseName": "Barbell Bench Press",
},
"key": 0.7455255006925475,
"reps": 0,
"sets": 0,
"weigth": 0,
},
你好,我现在正在学习在 React Native 中做 Faltlists,我试图在上面的 Flatlist 中显示 Array List 中的项目,但是当我显示 none 的值时插入一个 console.log() 它只是在终端
中说未定义您需要解构 renderItem 函数的参数,因为它是一个具有 item
字段的对象:
renderItem={({item}) => (
我还建议从您的 JSX 中提取该函数以提高渲染性能。