Your code is legal according to react documentation.
You also may consider to put this code inside getInitialState method as according to another react doc initializing from props is not an anti-pattern.
You also can replace several calls with one setState method call:
this.setState({forename: nextProps.contact.forename,
surname: nextProps.contact.surname,
phone: nextProps.contact.phone,
email: nextProps.contact.email});