Если submit находится в этом же компоненте - просто забираем значения из state.
Если в другом (на уровень выше, получается, или на несколько), то значит вам нужно из компонента, при изменении вызывать callback функцию (которая будет передана в качестве props), внутри которой будет вызываться изменение уже родительского стейта и тогда на submit вы запросто сможете забирать уже готовый state
Пример кода:
Component A
state = {
fromSuperComponent: '123',
}
callMeHandle = (e) => {
this.setState({
fromSuperComponent: e.currentTarget.value,
})
}
render() {
return (
<form>
<input type='text' value='test'/>
<SuperComponent callMeWhenDataChanged={this.callMeHandle} value={this.state.fromSuperComponent} />
</form>
)
}
SuperComponent
render() {
<input type='text' value={this.props.value} onChange={this.props.callMeWhenDataChanged} />
}