Im new to react.
Parent component :
// handles parsed json order from child and retrieves parsed data
// child component calls this method by calling this.props.onAdded()
handleAdded = (orderData) => {
let items = orderData.items;
let ids = '';
items.forEach(function(item) {
ids+=item.product_id.toString()+'&';
});
// some async call.
getProducts(ids).then((response) => {
// here is the orderData variable changed based on value got from api...
// lets say that it looks like orderData.item = 'something else'
// changed orderData value like this is printed in child component after file is parsed :(
this.handleFindProductResult(orderData, response.data);
});
}
Child component:
// parse json order from file input
getOrderFromFile = (file) => {
let reader = new FileReader();
reader.readAsText(file);
reader.onload = () => {
const parsed_order = JSON.parse(reader.result); // parsed_order.item = 'something'
console.log('parsed:', parsed_order); // returns parsed_order.item = 'something else'
this.props.onAdded(parsed_order);
};
reader.onerror = (error) => {
this.props.onAdded(false);
};
}
In the parent component, I call some setState()
and manipulate the value got from child component - parsed_order
.
The problem is, that console.log('parsed:', parsed_order);
prints changed value and not actual parsed value... I cant understand it :(
I would appreciate any help.