React Native FlatList не прокручивать - PullRequest
0 голосов
/ 01 мая 2020

мой FlatList не прокручивается, я вставил FlatList в SafeAreaView, но не работает, я вижу элемент, но не могу прокручивать.

Как я могу решить эту проблему?

Как я могу попробовать?

Спасибо

export default function App() {
  const [textTodo, setTextTodo] = useState('')
  const [arrayTodo, setArrayTodo] = useState([])

  const inputTextHandler = (text) => {
    setTextTodo(text)
  }

  const insertTodoHandler = () => {
    if (textTodo.trim() === '') {
      Alert.alert('ToDo vuoto', 'Devi inserire qualcosa da fare')
      return
    }
    setArrayTodo([...arrayTodo, { value: textTodo, id: Math.random().toString() }])
    console.log(arrayTodo)
    setTextTodo('')
    Keyboard.dismiss()
  }

  return (
    <View>
      <Header />
      <View style={styles.container}>
        <TextInput onChangeText={inputTextHandler} value={textTodo} style={styles.input} placeholder='Cosa hai da fare?' />
        <Button title='INSERISCI' onPress={insertTodoHandler} />
      </View>
      <SafeAreaView>
        <FlatList
          style={styles.output}
          data={arrayTodo}
          renderItem={({ item }) => <Text style={styles.outputText}>{item.value}</Text>}
          keyExtractor={item => item.id}
        />
      </SafeAreaView>
    </View>
  );
}

1 Ответ

0 голосов
/ 01 мая 2020

Я пробовал ваш код, он работает нормально, может быть проблема с вашими стилями, проверьте этот, я пробовал ваш, изменив стили:

import React, { useState} from 'react';
import { View, TextInput, ScrollView, FlatList, SafeAreaView, Button, Text, Keyboard, StyleSheet  } from 'react-native';
export default function App() {
    const [textTodo, setTextTodo] = useState('')
    const [arrayTodo, setArrayTodo] = useState([])

    const inputTextHandler = (text) => {
      setTextTodo(text)
    }

    const insertTodoHandler = () => {
      if (textTodo.trim() === '') {
        Alert.alert('ToDo vuoto', 'Devi inserire qualcosa da fare')
        return
      }
      setArrayTodo([...arrayTodo, { value: textTodo, id: Math.random().toString() }])
      console.log(arrayTodo)
      setTextTodo('')
    }

    return (
      <View style={{marginTop:50,flex:1}}>
        <View style={styles.container}>
          <TextInput onChangeText={inputTextHandler} value={textTodo} style={styles.input} placeholder='Cosa hai da fare?' />
          <Button title='INSERISCI' onPress={insertTodoHandler} />
        </View>
        <FlatList 
          style={styles.output}
            data={arrayTodo}
            renderItem={({ item }) => <View><Text style={styles.outputText}>{item.value}</Text></View>}
            keyExtractor={item => item.id}
          />
      </View>
    );
  }
  const styles = StyleSheet.create({
    container: {
        padding:50,
        flexDirection: 'row',
        alignItems: 'center',
        backgroundColor: 'white',
      },
      input: {
        borderBottomWidth: 1,
        marginVertical: 15,
        width: '80%',
        marginHorizontal: 5,
        paddingLeft: 5
      },
      output: {
        paddingHorizontal: 50,
      },
      outputText: {
        borderWidth: 1,
        borderColor: 'grey',
        padding: 10,
        marginVertical: 5,
        borderRadius: 10,
      },
      shadow: {
        shadowOffset: { width: 15, height: 15 },
        shadowOpacity: 1
      }
  });

enter image description here

enter image description here

Надеюсь, это поможет!

...