Реактивное обновление источника данных ListView из другого файла - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть представление списка в моем классе A, которое отображается следующим образом:

<ListView
    style = {Styles.itemList}
    dataSource = {this.state.dataSource}
    renderRow = {(data) => <MyItem {...data} />}
/>

Я отделяю свой элемент в другой файл, поскольку элемент списка довольно сложный, например:

const MyItem = (props) => {
    return (
        <View style={Styles.container}>
            ....
            <Text>{props.firstElement}</Text>
            ....
        </View>
    );
}

У меня есть компонент TouchableHighlight (Button) внутри компонента MyItem, где после его нажатия мне нужно изменить источник данных моего списка (который находится в моем классе A), как вызвать или вызвать setState для этого источника данных изMyItem (который находится в другом классе).

Есть ли какое-нибудь решение?Спасибо.

1 Ответ

0 голосов
/ 24 апреля 2018

Вы можете использовать функцию обратного вызова, просто передайте созданную вами функцию в классе A, например renderRow = {(data) => <MyItem callback={this.MyChangeList} {...data} />}. Их в вашем классе MyItem вы можете назвать его, используя this.props.callback().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...