我有一个问题。我正在使用react-rails制作表单。我可以使用<%= tag%>在React-Rails中调用数据库中的数据?
我试过这样的事情,但它没有用。
<input class="form-control" type="text" name="user[phone]" id="user_phone" defaultValue=<%= user.email %> />
谢谢。
答案 0 :(得分:1)
不,那是不可能做到的。 React Components内部无法访问Rails框架。 React-Rails框架用于什么,是在视图模板中安装组件的便捷方式,如下所示:
<%= react_component("MyComponent", { data: "that", becomes: "properties" }) %>
并且还能够预渲染ReactComponent服务器端(需要服务器上的NodeJS引擎),以便立即向最终用户显示组件结果,而无需等待加载所有javascript资源
如果要使用Rails记录中的数据,则必须将该信息作为属性传递给已安装的组件,然后您可以像访问任何其他React属性一样访问它们。
举例:
<%= react_component("UserComponent", { email: @user.email, phone: @user.phone }) %>
然后Component看起来像这样:
class UserComponent extends Component {
static propTypes = {
email: PropTypes.string,
phone: PropTypes.string,
}
render() {
const { email, phone } = this.props;
return (
<div>
<input
className="form-control"
type="text"
name="user[email]"
id="user_email"
defaultValue={ email }
/>
<input
className="form-control"
type="text"
name="user[phone]"
id="user_phone"
defaultValue={ phone }
/>
</div>
);
}