So I noticed a very odd behaviour when it comes to defaultValue. When you re-render using defaultValue parts of it may not register the re-render and maintains the initial rendering of the state.
However switching from defaultValue to value fixes this issue.
This is both a heads up to other people who may be experiencing this issue and a question as to why this occurs.
The line of code that generates this:
inner_array.push(
<div key={j}>
<input defaultValue={final_line} style={{ width: "100%" }} onClick={this.highlight} ></input>
</div>)
This eventually gets map'd like this:
{Object.keys(data).map( (item, index) => (!item.match(/default/i)) ? <li key={index}>{item}</li> : "")}
Extra information
So the thing that causes the re-render is setState. I'm overriding a previous object with another object.
Example
defaultValue and value in action: Fiddle: https://jsfiddle.net/69z2wepo/74509/

keyprop being collided when you change the list of items. It's not recommended to use an array index as a key. Try to replace it to anything that is unique.keyprop: jsfiddle.net/b9qy7o3x Notice that the key now consists not only of index but also of object ID, which makes it unique. I'll post more detailed answer soon"something"+indexwork? I've updated the fiddle to show both defaultValue and normal value