【发布时间】:2021-07-18 14:38:44
【问题描述】:
我正在尝试在 textarea 值中插入组件的值,我正在从后端提取数据并在 GetAboutApp 组件中使用它,它在 <div> 或 <p> 等其他元素中运行良好例如,但是当在 textarea value 属性中使用它时,它给了我 [object Object]
我的 GetAboutApp 组件代码:
import { useState, useEffect } from 'react';
import Axios from 'axios';
const GetAboutApp = () => {
const [appDesc, setAppDesc] = useState('');
useEffect(() => {
const getAppDesc = async () => {
const getAppDescUrl = 'http://dev.com:3001/getAppDesc';
try {
const response = await Axios.get(getAppDescUrl);
setAppDesc(response.data);
} catch (err) {
console.error(err);
}
};
getAppDesc();
return () => setAppDesc(''); // cleanup: set the value to nothing
}, []);
return (
<>
{appDesc.DescRetrieved === 1
? appDesc.result[0].rest_app_about.length > DescLen
? appDesc.result[0].rest_app_about.slice(0, DescLen) + '...'
: appDesc.result[0].rest_app_about
: appDesc.message}
</>
);
};
export default GetAboutApp;
我的文本区域元素:
<textarea
name='aboutDescription'
id='aboutDescription'
defaultvalue={<GetAboutApp />}
minLength={MIN_DESC_LENGTH}
maxLength={MAX_DESC_LENGTH}
onChange={(e) => setAppDesc(e.target.value.trim())}
onKeyUp={(e) => {
const target = e.target.value.trim();
if (target.length > 0 && target.length < MIN_DESC_LENGTH) {
if (descErr)
descErr.textContent = `desc can't be less than ${MIN_DESC_LENGTH}`;
} else if (target.length > MAX_DESC_LENGTH) {
if (descErr)
descErr.textContent = `desc can't be more than ${MAX_DESC_LENGTH} character`;
} else {
if (descErr) descErr.textContent = '';
}
}}
required
></textarea>
我的问题是如何在文本区域内渲染从组件返回的内容,或者是否有任何方法或技巧来实现这一点?
【问题讨论】:
标签: reactjs components jsx