为什么我在 React Native 中收到“对象作为 React 子对象无效”?

Fai*_*een 1 reactjs react-native

我正在将一个数组传递给 aFlatList但出现错误:

'不变违规:对象作为 React 子对象无效(找到:带有键 {id、customer 等} 的对象)。

我试过在项目周围放置括号并将其删除,但没有任何效果。有谁知道如何解决这个错误?

renderSearches = () => {
    if (this.state.products.length) {
        return (
            <View style={styles.suggestionContainer}>
                <FlatList
                    data={this.state.products}
                    keyExtractor={(item, index) => index.toString()}
                    renderItem={({item}) => <SuggestionItem value={item} onSelect={this.updateSearchTerm} />}
                />
            </View>
        )
    }

    return (<View></View>);
}
Run Code Online (Sandbox Code Playgroud)

这是 SuggestionItem 渲染:

render() {
    const {value} = this.props;
    return (
        <TouchableOpacity style={styles.suggestion} onPress={() => {this.props.onSelect(value)}}>
            <Text style={styles.suggestionText}>{value}</Text>
        </TouchableOpacity>
    );
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

在此处输入图片说明

aks*_*ore 6

您的 SuggestionItems 渲染方法应该具有 -

<Text style={styles.suggestionText}>{value.customer}</Text>
Run Code Online (Sandbox Code Playgroud)

或类似的东西

<Text style={styles.suggestionText}>{value.name}</Text>
Run Code Online (Sandbox Code Playgroud)

而不是直接在文本组件中渲染整个对象

<Text style={styles.suggestionText}>{value}</Text>
Run Code Online (Sandbox Code Playgroud)