首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UseState中使用三元运算符的问题

UseState中使用三元运算符的问题
EN

Stack Overflow用户
提问于 2022-01-10 11:15:30
回答 2查看 150关注 0票数 0

我想做以下几件事

代码语言:javascript
运行
复制
    const[name,setName]=useState(recipe!==null?recipe.name:'')

该名称似乎从未与三元运算符一起分配。它们只是在useState中不工作吗?

我也尝试过重新分配这个名字,比如:

代码语言:javascript
运行
复制
    if(recipe!==null){
         setName(recipe.name)

我在控制台中收到一个关于太多重呈现的错误。有没有其他有条件地分配名字的方法?

编辑这是菜谱的结构

代码语言:javascript
运行
复制
 const[recipes, setRecipes]=useState([
        {
            id:1,
            name:'Chicken Curry',
            ingredients:"Some ingredients",
            steps:"Some steps",
            energy:'2899',
            fat:'28.5',
            carbohydrates:'41.3',
            protein:'12',
            sodium:'1226',
            preparationTime:'15',
            difficulty:'Easy'
        }

我怎么打电话给康斯特

代码语言:javascript
运行
复制
<RecipeModal recipe={activeRecipe}/>

菜谱模式

代码语言:javascript
运行
复制
const RecipeModal=({recipe}) =>{
EN

回答 2

Stack Overflow用户

发布于 2022-01-10 11:24:33

很难理解那里发生了什么,但我会尽力帮忙的。我想菜谱可以是未定义的,而不是null。你可以在下面试一试:

代码语言:javascript
运行
复制
const [name, setName] = useState(recipe ? recipe.name : '');

在上面的示例中,我们只是简单地检查菜谱是否有特鲁西值,因此如果菜谱为: null、未定义、0或"“,默认状态值将是空字符串。

关于重新分配名称状态。你是在useEffect钩子里这么做吗?请检查所有的useEffect挂钩,看看是否正在更改依赖数组中存在的值。

无限重呈现可以通过添加if语句来解决,以查看我们要赋值的值是否真的发生了变化。这也可能与你重新分配食谱的地方有关。我可以用更多的代码做进一步的帮助。

票数 0
EN

Stack Overflow用户

发布于 2022-01-10 11:18:29

试着像这样使用:

代码语言:javascript
运行
复制
const[name,setName]=useState(recipe!==null?recipe.name:null)

或者如果名称是字符串类型,则

代码语言:javascript
运行
复制
const[name,setName]=useState(recipe!==null?recipe.name: " ")
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70651532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档