Уникальная проблема listKey - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь создать вложенный плоский список в своих приложениях.

Я использую компоненты аккордеона по родной базе в качестве родителя моего плоского списка, а в содержимом каждого раздела я пытаюсь добавить плоский список.Тем не менее, я закончил с ошибкой о том, что «вы должны передать уникальные реквизиты listKey каждому списку братьев и сестер»

componentWillMount() {
    var toPush = []
    const request = axios({
        method: "POST",
        url: "XXX",
        data: {
            customer_id: this.props.User.userData.id
        },
        headers: {
            "Content-Type": "application/json"
        }
    }).then(response => {
        response.data.map(history => {

            this.getDish(history.order_id).then((dish)=>{
                this.setState({
                    dataArray: [...this.state.dataArray,
                        {
                            title: "Restaurant:" + history.restaurant_name + " , " + "Order id : " + history.order_id,
                            content: <Item data={dish} listKey={history.order_id}/>
                        }
                    ]
                })               
            })

        })
        this.setState({
            dataArray: toPush
        })

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

1 Ответ

0 голосов
/ 11 июня 2018

Вам необходимо добавить ключевой атрибут к компоненту.Используются ключи, поэтому реакция может определить, какие элементы были изменены.

content: <Item data={dish} key={history.order_id} listKey={history.order_id} />

Если ваш реквизит listKey не нужен, вы можете удалить его

...