Может быть выгоднее использовать массив большого размера, но каждый элемент в узле несколько велик, и я не уверен, какой эффект будет иметь большой массив.
JavaScript массивы содержат только ссылки на объекты, которые они хранят , поскольку это динамический c язык сценариев, поддерживающий конструкцию на основе прототипов object . Из-за этого каждый размер элемента не повлияет на производительность массива .
Другая возможность заключается в расширении встроенного класса Array
в вашем связанном списке. структура данных для обеспечения совместимости.
Ваше решение об использовании массива или связанного списка должно основываться на операциях со списком, которые ваше приложение использует чаще всего. Есть много статей об этом .
Есть ли способ добавить связанный список в список чекбоксов или мне нужно создать массив?
Как бы я go о любой из опций, если им нужно динамически обновлять?
Есть несколько git хранилищ , которые добавляют поддержку для того, что вы хотите достичь ( вот пример , не стесняйтесь исследовать npm для более подробной информации.
Другой возможностью, если вы хотите, чтобы ваши элементы динамически обновлялись, будет инкапсулировать их в React.Component для рендеринга:
// YourNode.js
import React, { Component } from 'react';
import { CheckBox } from 'react-native';
export default class YourNode extends Component {
constructor(props) {
super(props);
this.state = {
checked: false,
};
}
selectItem = () => {
const { onPress } = this.props;
// Update the state
this.setState({ checked: !this.state.checked });
onPress();
};
render() {
const { node } = this.props;
// You may want to render more things like `Text` or `View` components based on
// the node's content
return (
<CheckBox
value={this.state.checked}
onValueChange={this.selectItem}
/>
);
}
}
import YourNode from './YourNode';
// YourScreen.js
render() {
//...
// This will render a `YourNode` component for each one of your nodes.
{yourList.map((item, index)) => {
return (<YourNode node={item} onPress{() => this.selectedNodes.push(item)}>)
}
}
}