React-Native FlatList组件不起作用

时间:2020-06-19 18:53:49

标签: react-native react-native-android

你好,我是本机反应的初学者。我正在使用一个基本的应用程序进行练习,该应用程序会读取用户的输入并将其显示在屏幕上。我正在尝试使用FlatList,但未呈现。 这是我的代码

    export default function App() {
      const [enteredText, setEnteredText] = useState(
        ""
      ); /* constant and method  with String*/

      const [enteredString, setEnteredString] = useState(
        []
      ); /* constant and method  with Array  */

      const enteredTextHandler = (enteredText) => {
        setEnteredText(enteredText);
      }; /* Set the entered text to the constant value*/

      const addTextHandler = () => {
        setEnteredString((currentString) => [
          ...currentString,
          { id: Math.random().toString(), value: enteredText },
       ]); /*  Add entered text to the array */
      };

      return (
        <View style={styles.mainView}>
          <View style={styles.container}>
            <TextInput
              placeholder="Enter te value"
              style={styles.input}
              onChangeText={enteredTextHandler}
              value={enteredText}
            />
            <Button title="Add" onPress={addTextHandler} style={styles.button} />
          </View>
          <FlatList
            data={enteredString}
            keyExtractor={(item) => item.id}
            renderItem={(itemData) => {
              console.log(itemData.item.value);
              <View style={styles.listStyle}>
                <Text>{itemData.item.value}</Text>
              </View>;
            }}
          />
        </View>
      );
    }

2 个答案:

答案 0 :(得分:0)

可能是因为您在enteredText中重用了变量名enteredTextHandler。我认为它的设置方式总是将enterText设置为空白。

尝试为文本参数使用其他名称:

const enteredTextHandler = newText => {
    setEnteredText(newText);
  }; /* Set the entered text to the constant value*/

答案 1 :(得分:0)

我得到了答案

soup = BeautifulSoup(page.content, 'lxml')

我的语法写错了。以前我使用(itemData)=> {} ,但实际语法为(itemData)=>()。我没有使用括号而是使用花括号,这就是为什么它不显示。