第二个参数的函数react hooks

时间:2019-09-11 06:51:32

标签: react-native react-hooks

我想要的就是更改状态后,我要运行第二个参数。

没有钩子..这就是它的样子

state = {
  gasTypeFrom: '',
}

setModal = item => {
    setState({ gasType: item }, () => {
      renderFrom();
    });
  };

这就是我尝试用钩子

 const [froms, setFroms] = useState({
    gasType: 'Select Value Here',
    displayModal: false,
  });

function setModalFrom(item) {
    useEffect(
      () => {
        setFroms({...froms, gasType: item});
      },
      () => {
        renderModalFrom();
      }
    );
    console.log('setModalFrom()', froms.gasType);
  }

我该如何处理带有第二个参数的钩子?

1 个答案:

答案 0 :(得分:1)

useEffect需要一个函数回调和一个依赖数组,因此当依赖数组中的值被更新时,会触发效果。

const [froms, setFroms] = useState({
  gasType: 'Select Value Here',
  displayModal: false,
});

useEffect(() => {
  renderModalFrom();
}, [froms]); // when a value here updates, effect is run

...somewhere in your code
setFroms({...froms, gasType: item}); // this updates the value

useEffect documentation