在React上缩放相对于容器的更改文本

问题描述

我正在使用React.js,我希望输入文本适合它的容器,但是要onChange。

例如:如果用户输入“ T”

enter image description here

然后他输入'E',所以现在输入的是'TE'

enter image description here

请帮助我吗?感谢在广告中..:)

解决方法

我创建了一个小应用程序对此进行演示。我正在使用两种状态text来管理文本框中的当前文本,并使用一种状态fontSize来计算文本的当前字体大小。我将上限设置为200px,将下限设置为50px,以使文本看起来不会太大或太小。比率为1.2,这意味着每当有人添加新字符时,文本大小将增加到1.2,并且如果删除字符,则大小将减少1.2。这是一个应用程序。

import React,{ useState,useCallback } from "react";

export default function App() {
  const [fontSize,setFontSize] = useState(200);
  const [text,setText] = useState("");
  const updateFontSize = useCallback(
    (value) => {
      if (text.length > value.length) {
        const textSize = Math.ceil(fontSize * 1.5,10);
        fontSize < 200 && setFontSize(textSize);
      } else if (text.length < value.length) {
        const textSize = Math.ceil(fontSize / 1.5,10);
        fontSize > 50 && setFontSize(textSize);
      }
      setText(value);
    },[fontSize,text]
  );
  return (
    <div className="App">
      <input
        type="text"
        onChange={(event) => updateFontSize(event.target.value)}
      />
      <div style={{ fontSize: `${fontSize}px` }}>{text}</div>
    </div>
  );
}

这里是一个代码沙箱link,供您参考。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...