Reactjs 如何添加上下文以重新组合';s with handlers()?
Reactjs 如何添加上下文以重新组合';s with handlers()?,reactjs,recompose,Reactjs,Recompose,recompose调用了此函数,允许您在保持组件纯净的同时定义事件处理程序 e、 g.如果你体内有类似的东西render()method: <TextInput value={value} onChange={ev => this.handleChange(ev.target.value)} /> 我对细节做了一些捏造,但假设inputs以输入名称数组的形式出现。e、 g.[“firstName”,“lastName”]将呈现两个文本框,每个文本框一个 我想在我的状态中存储每
recompose
调用了此函数,允许您在保持组件纯净的同时定义事件处理程序
e、 g.如果你体内有类似的东西render()
method:
<TextInput value={value} onChange={ev => this.handleChange(ev.target.value)} />
我对细节做了一些捏造,但假设inputs
以输入名称数组的形式出现。e、 g.[“firstName”,“lastName”]
将呈现两个文本框,每个文本框一个
我想在我的状态中存储每一个的值,但我不想为每一个定义单独的更新程序函数。因此,我需要将一些元数据附加到onChange={…}
prop,以便知道在我的状态下更新哪个字段
我该怎么做
在我的示例中,我编写了
onChange(input)
并向withHandlers.onChange
函数添加了一个额外的“级别”来接受额外的参数,但withHandlers
实际上并不是这样工作的。有什么方法可以做到这一点吗?例如,确保每次呈现
时,每个TextInput
都接收相同的函数实例?这是一种典型的情况,您需要直接在TextInput组件中定义更改句柄。
您需要将updateValue函数作为一个道具传递给TextInput组件。这是一种典型的情况,您需要直接在TextInput组件内部定义更改句柄。
您需要将updateValue函数作为一个道具传递给TextInput组件。Oh..并将输入名称作为一个单独的道具传递给
TextInput
?我想这可能行得通,但这需要修改每个输入组件才能处理这样的场景。很好的例子!谢谢。哦..然后将输入名称作为单独的道具传递到TextInput
?我想这可能行得通,但这需要修改每个输入组件才能处理这样的场景。很好的例子!谢谢你。
const enhance = compose(
withState('values', 'updateValue', ''),
withHandlers({
onChange: props => inputName => event => {
props.updateValue(inputName, event.target.value)
},
onSubmit: props => event => {
event.preventDefault();
submitForm(props.value)
}
})
)
const Form = enhance(({ value, onChange, onSubmit, inputs }) =>
<form onSubmit={onSubmit}>
<label>Value
{inputs.map(input => (
<TextInput value={value} onChange={onChange(input)} />
))}
</label>
</form>
)