在 ReactJS 中的文本框上显示动态占位符内容
Displaying Dynamic placeholder content on Textbox in ReactJS
我想在 React 的文本框组件内的占位符中放置一个动态内容。我已经声明了一个 returns 占位符的函数,将值作为参数传递。为了清楚起见,我在下面的代码中对 args 进行了硬编码。
我的函数中总是得到一个空参数。如果有人能让我知道我在这里做错了什么。
这是我的输入组件
<SocialInput
value={data.name}
onChange={onChangeInput}
error={validationError}
placeholder={ () => { CustomPlaceholder("facebook") }}
/>
return 占位符的函数。
const CustomPlaceholder = (name) => {
let placeholderContent;
switch(name) {
case "facebook":
placeholderContent = "https://www.facebook.com/your-username";
return placeholderContent;
case "email":
placeholderContent = "example@domain.com";
return placeholderContent;
case "instagram":
placeholderContent = "https://www.instagram.com/your-username"
return placeholderContent;
case "linkedin":
placeholderContent = "https://www.linkedin.com/your-username";
return placeholderContent;
case "pinterest":
placeholderContent = "https://www.pinterest.com/your-username";
return placeholderContent;
case "skype":
placeholderContent = "https://skype/your-username";
return placeholderContent;
case "twitter":
placeholderContent = "https://twitter.com/your-username";
return placeholderContent;
case "whatsapp":
placeholderContent = "(Country-code)-Mobile number";
return placeholderContent;
case "youtube":
placeholderContent = "https://www.youtube.com/channel/Channel link";
return placeholderContent;
case "blog":
placeholderContent = "domain.com";
return placeholderContent;
case "other":
placeholderContent = "Social URL";
return placeholderContent;
default: "Social URL";
}
}
最后是我的输入文本框。在这里我得到了作为占位符道具的功能:
<input
type="text"
onChange={onChange}
value={value}
className="social-input"
placeholder={placeholder}
onBlur={(e) => e.target.placeholder = placeholder}
onFocus={(e) => e.target.placeholder = ""}
/>
这里 placeholder={ () => { CustomPlaceholder("facebook") }}
它调用函数但是 return 未定义,使它 return 值:placeholder={() => CustomPlaceholder("facebook")}
,
并在您的组件中调用接收到的函数:placeholder={placeholder()}
因为它是一个函数
或者您可以保留组件原样并传递生成的占位符字符串:
placeholder={CustomPlaceholder("facebook")}
我想在 React 的文本框组件内的占位符中放置一个动态内容。我已经声明了一个 returns 占位符的函数,将值作为参数传递。为了清楚起见,我在下面的代码中对 args 进行了硬编码。 我的函数中总是得到一个空参数。如果有人能让我知道我在这里做错了什么。
这是我的输入组件
<SocialInput
value={data.name}
onChange={onChangeInput}
error={validationError}
placeholder={ () => { CustomPlaceholder("facebook") }}
/>
return 占位符的函数。
const CustomPlaceholder = (name) => {
let placeholderContent;
switch(name) {
case "facebook":
placeholderContent = "https://www.facebook.com/your-username";
return placeholderContent;
case "email":
placeholderContent = "example@domain.com";
return placeholderContent;
case "instagram":
placeholderContent = "https://www.instagram.com/your-username"
return placeholderContent;
case "linkedin":
placeholderContent = "https://www.linkedin.com/your-username";
return placeholderContent;
case "pinterest":
placeholderContent = "https://www.pinterest.com/your-username";
return placeholderContent;
case "skype":
placeholderContent = "https://skype/your-username";
return placeholderContent;
case "twitter":
placeholderContent = "https://twitter.com/your-username";
return placeholderContent;
case "whatsapp":
placeholderContent = "(Country-code)-Mobile number";
return placeholderContent;
case "youtube":
placeholderContent = "https://www.youtube.com/channel/Channel link";
return placeholderContent;
case "blog":
placeholderContent = "domain.com";
return placeholderContent;
case "other":
placeholderContent = "Social URL";
return placeholderContent;
default: "Social URL";
}
}
最后是我的输入文本框。在这里我得到了作为占位符道具的功能:
<input
type="text"
onChange={onChange}
value={value}
className="social-input"
placeholder={placeholder}
onBlur={(e) => e.target.placeholder = placeholder}
onFocus={(e) => e.target.placeholder = ""}
/>
这里 placeholder={ () => { CustomPlaceholder("facebook") }}
它调用函数但是 return 未定义,使它 return 值:placeholder={() => CustomPlaceholder("facebook")}
,
并在您的组件中调用接收到的函数:placeholder={placeholder()}
因为它是一个函数
或者您可以保留组件原样并传递生成的占位符字符串:
placeholder={CustomPlaceholder("facebook")}