我有2个函数,function1()和function2()
fn gx<'a>(x: &'a Wrapper<&i32>, y: &'a Wrapper<&i32>) -> i32 {
x.f::<i32, _>(&y) // ok
}
我在第二个功能中有一些文本输入,当用户输入某些内容时,我需要更改状态(在第一个功能中)。 如何处理这种情况?
答案 0 :(得分:1)
将处理程序函数作为道具传递并在function2中调用它。
function2(props){
//wherever you get the input call
props.handleTextInput(inputString)
return(
<TextInput/>
)
}
export default function1(){
const [name,setName]=useState('');
const handleTextInput = (name) => {
setName(name);
}
return(
<View>
<function2 handleTextInput = {this.handleTextInput} />
</View>
);
}
答案 1 :(得分:1)
首先,您没有调用function2
,所以我不太了解它的工作原理
<View>
{function2} // you are not invoking()
</View>
但是无论如何,如果您用大写字母声明Function2
,则可以将其呈现为react组件,并以道具形式发送setName
const Function2 = ({setName}) =>{
return(
<TextInput/>
)
}
...
<View>
<Function2 setName={setName} />
</View>
或仍具有调用功能并发送arg
function2(setName){
return(
<TextInput/>
)
}
...
<View>
{function2(setName)}
</View>