Я хотел использовать избыточность для хранения значений из выпадающего меню и использовать его позже в качестве примера для моего приложения, но он всегда выбрасывает инвариантное нарушение
Вот мой App.js
export default class App extends Component{
render() {
const store = createStore(reducers, {},applyMiddleware(ReduxThunk));
return (
<Provider store={store}>
<Picker />
</Provider>
);
}
}
Picker.js
class Picker extends Component {
ds = new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2 });
constructor() {
super();
this.onChangeText = this.onChangeText.bind(this);
this.handleDestroyItem = this.handleDestroyItem.bind(this);
}
ds = new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2 });
onChangeText(text) {
this.props.dispatch({ type: 'ADD_ITEM', text });
}
handleDestroyItem(id) {
this.props.dispatch({ type: 'REMOVE_ITEM', id });
}
renderRow = (rowData, sectionID, rowID) => {
return (
<View>
<Text>{rowData}</Text>
<TouchableOpacity
onPress={() => {
this.handleDestroyItem(rowID);
}}>
<Text>Delete</Text>
</TouchableOpacity>
</View>
);
};
render() {
let data = [{ value: 'Banana' }, { value: 'Mango' }];
return (
<View>
<Dropdown label="Add Commodity" data={data} onChangeText={this.onChangeText} />
<ListView dataSource={this.ds.cloneWithRows(this.props.dataSource)} renderRow={this.renderRow} enableEmptySections />
</View>
);
}
}
const dataSource = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2,
});
function mapStateToProps(state) {
return {
dataSource: dataSource.cloneWithRows(state),
};
}
папка редуктора имеет индексный файл, который имеет редуктор и связан с datareducer