Javascript 在react之外修改reactjs表单输入值

Javascript 在react之外修改reactjs表单输入值,javascript,reactjs,forms,browser,Javascript,Reactjs,Forms,Browser,我正在使用一个js库,它在引擎盖下使用react。我想修改它,在它呈现的表单上预先填充输入。我只能通过实例化访问顶级react组件。如何设置该值以使react拾取该值 我尝试设置el.value和$el.attr('value','val'),但没有效果。我还尝试过直接使用el.\u reactInternalInstance$abc123.\u currentElement.props.value设置状态,但也不起作用 电话: const event = new Event("inp

我正在使用一个js库,它在引擎盖下使用react。我想修改它,在它呈现的表单上预先填充输入。我只能通过实例化访问顶级react组件。如何设置该值以使react拾取该值

我尝试设置
el.value
$el.attr('value','val')
,但没有效果。我还尝试过直接使用
el.\u reactInternalInstance$abc123.\u currentElement.props.value
设置状态,但也不起作用

电话:

const event = new Event("input", { bubbles: true })
el.dispatchEvent(event)

也没有帮助。

我用jquery提出了一个解决方案,没有库就无法让它工作。当用户单击输入时,第一行填充该字段。第二个在展开操作时填充。请注意,在展开任何操作时都会调用。但是jquery似乎可以很好地与单击上的
配合使用。问题的一部分是在操作展开之前创建元素

$('body').on('click', 'tr[data-param-name="<INPUT NAME>"] input', setInput)
$('.opblock').on('click', setInput)
$('body')。在('click','tr[data param name=”“]input',setInput)上
$('.opblock')。在('click',setInput)上
我没有找到下面调用的链接,但这似乎以react获取的方式设置了值

    function setInput (e) {
        let xinput = $('tr[data-param-name="<INPUT NAME>"] input')
        let target = xinput[0]
        if (xinput.val() == '') {
            let value = "INPUT VALUE"
            const setter = Object.getOwnPropertyDescriptor(target, "value").set
            const prototype = Object.getPrototypeOf(target)
            const prototypeValueSetter = Object.getOwnPropertyDescriptor(prototype, 'value').set
            if (setter && setter !== prototypeValueSetter) {
                prototypeValueSetter.call(target, value)
            } else {
                setter.call(target, value)
            }
            const event = new Event("input", {bubbles: true})
            target.dispatchEvent(event);
        }
    }
函数设置输入(e){
让xinput=$('tr[data param name=”“]input')
让目标=xinput[0]
if(xinput.val()==''){
let value=“输入值”
常量setter=Object.getOwnPropertyDescriptor(目标,“值”).set
const prototype=Object.getPrototypeOf(目标)
const prototypeValueSetter=Object.getOwnPropertyDescriptor(原型,'value').set
if(setter&&setter!==prototypeValueSetter){
prototypeValueSetter.call(目标,值)
}否则{
setter.call(目标、值)
}
const event=新事件(“输入”{bubbles:true})
目标。调度事件(事件);
}
}

你找到方法了吗?我找到了,只是添加了一个答案。我的方法仅在设置contentEditable div的innerHTML后处理该输入事件。不必手动调用setter。