在第二个函数中使用setter方法来响应本地挂钩状态更改

时间:2020-06-05 14:02:58

标签: react-native react-hooks

我有2个函数,function1()和function2()

fn gx<'a>(x: &'a Wrapper<&i32>, y: &'a Wrapper<&i32>) -> i32 {
    x.f::<i32, _>(&y) // ok
}

我在第二个功能中有一些文本输入,当用户输入某些内容时,我需要更改状态(在第一个功能中)。 如何处理这种情况?

2 个答案:

答案 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>