<Wrap>
{this.props.children.map((Item, key) => <Item key={key} ref={ref => this.refs[key] = ref})}
</Wrap>
var location
поднимается в начало кода, и переобъявляет location браузера. Тот же let уже не позволит этого сделать, потому что location уже существует. А тот код, который вы выполняете: var location = $('#search_str').attr('data')
выполняется как location = $('#search_str').attr('data')
, что аналогично window.location = $('#search_str').attr('data')