<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')