Javascript React钩子:方法无限地呈现JSX调用

Javascript React钩子:方法无限地呈现JSX调用,javascript,reactjs,react-native,class,react-hooks,Javascript,Reactjs,React Native,Class,React Hooks,在这里,您可以看到我的问题的简化版本: 类测试扩展组件{ 状态={text:'Hello World'}; rendersomeJSX=()=>{this.props.someValuethatChangesVortime}; render(){ 返回{this.rendersomeJSX()}; } } 我尝试使用React Hook实现相同的行为: 功能使用测试(道具){ const[text,setText]=useState('Hello World'); 函数rendersomeJS

在这里,您可以看到我的问题的简化版本:

类测试扩展组件{
状态={text:'Hello World'};
rendersomeJSX=()=>{this.props.someValuethatChangesVortime};
render(){
返回{this.rendersomeJSX()};
}
}
我尝试使用React Hook实现相同的行为:

功能使用测试(道具){
const[text,setText]=useState('Hello World');
函数rendersomeJSX(){
返回{props.somevaluethatchangesvortime};
}
返回{rendersomeJSX()};
}
但是,当我使用第二个实现时,我注意到我的
rendersomeJSX
函数被无限次调用

使用函数构建UI的某个部分并返回它的正确方法是什么?

这是什么

import React, { useState, useMemo } from 'react';

function useTest() {
  const [text, setText] = useState('Hello World');
  const someJSX = useMemo(() {
    return <Text>{text}</Text>;
  }, [text]);
  return <View>{someJSX}</View>;
}
import React,{useState,usemo}来自“React”;
函数useTest(){
const[text,setText]=useState('Hello World');
const someJSX=useMemo(){
返回{text};
},[正文];
返回{someJSX};
}
这个怎么样

import React, { useState, useMemo } from 'react';

function useTest() {
  const [text, setText] = useState('Hello World');
  const someJSX = useMemo(() {
    return <Text>{text}</Text>;
  }, [text]);
  return <View>{someJSX}</View>;
}
import React,{useState,usemo}来自“React”;
函数useTest(){
const[text,setText]=useState('Hello World');
const someJSX=useMemo(){
返回{text};
},[正文];
返回{someJSX};
}

太棒了。但我真的需要使用useMemo吗?因为useMemo的用法是另一回事。@Kasra您可以使用文本PropaveSome创建单独的组件。但我真的需要使用useMemo吗?因为useMemo的用法是另一回事。@Kasra您可以使用文本属性创建单独的组件